{
  "schema": "turkos-guest-os-plan-v1",
  "status": "planned",
  "first": 601,
  "last": 2500,
  "counts": {
    "phases": 19,
    "modules": 95,
    "capabilities": 380,
    "actions": 1900,
    "planned": 1900,
    "implemented": 0,
    "tested": 0,
    "pass": 0
  },
  "scope": "QEMU/HVF içinde Rust ile yazılmış bağımsız AArch64 konuk işletim sistemi; mevcut kodun korunarak ürün runtime'ına taşınması.",
  "granularity": "380 yetenek × 5 ayrı mühendislik hamlesi: sözleşme, uygulama, olumlu test, hata testi, gerçek konuk kabulü. 1900 tamamlanmış özellik veya test değildir.",
  "baseline": {
    "contract": "user-2026-10-05",
    "counts": {
      "pass": 98,
      "partial": 0,
      "open": 0,
      "external": 2
    },
    "kernelImageSha256": "da56d1a47260ca7648bf68db85932d17e20fea3790afcbf9012b6076cd8d9f3e",
    "note": "Önceki dar kabullerdir; yeni ürün Image veya genel işletim sistemini doğrulamaz."
  },
  "policy": {
    "kernelLanguage": "Rust no_std + zorunlu küçük AArch64 assembly sınırı",
    "hostBackend": "QEMU/HVF",
    "release": "experimental",
    "productionWrite": "blocked",
    "hostVmWork": "yalnız konuk kabulünü mümkün kılan uyumluluk ve yaşam döngüsü bakımı",
    "diskTests": "Yalnız geçici disk kopyaları; kullanıcının kalıcı diski veya fiziksel disk üzerinde hata enjeksiyonu yok.",
    "externalEvidence": "İnsan erişilebilirlik incelemesi, bağımsız güvenlik incelemesi, fiziksel güç kaybı ve yeni sürüm için ikinci makine açılışı otomasyonla uydurulamaz.",
    "noClaims": [
      "Apple donanımına doğrudan boot",
      "Linux veya Windows ABI uyumluluğu",
      "güvenlik sertifikası",
      "gerçek-zaman garantisi",
      "imzalı secure boot yalnız hash kontrolünden",
      "üretim disk yazma güvenliği"
    ],
    "productionWriteGate": "Journal toparlanması + fiziksel güç kaybı sınırının bağımsız değerlendirmesi + K559 gerçek bağımsız güvenlik incelemesi gerekir; K1700 veya K2500 tek başına engeli kaldırmaz."
  },
  "references": [
    {
      "title": "Rust AArch64 bare-metal hedefi",
      "url": "https://doc.rust-lang.org/rustc/platform-support/aarch64-unknown-none.html"
    },
    {
      "title": "QEMU ARM virt modeli",
      "url": "https://www.qemu.org/docs/master/system/arm/virt.html"
    },
    {
      "title": "Virtio 1.3 sözleşmesi",
      "url": "https://docs.oasis-open.org/virtio/virtio/v1.3/virtio-v1.3.html"
    },
    {
      "title": "ELF gABI",
      "url": "https://gabi.xinuos.com/elf/"
    }
  ],
  "phases": [
    {
      "id": 1,
      "title": "Ürün çekirdeği ve açılış sözleşmesi",
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır.",
      "exit": "Tek ARM64 Image, doğrudan ve UEFI girişinden aynı runtime hizmet sırasına ulaşır; firmware adresleri ömrünü aşmaz.",
      "dependencies": [],
      "first": 601,
      "last": 700,
      "href": "/isletim-sistemi-faz-01",
      "modules": [
        {
          "id": "boot_contract",
          "title": "Sürümlü açılış verisi",
          "layer": "kernel",
          "first": 601,
          "last": 620,
          "features": [
            {
              "id": "boot_contract.origin",
              "title": "Doğrudan ve UEFI kaynak türü",
              "first": 601,
              "last": 605
            },
            {
              "id": "boot_contract.header",
              "title": "Sahipli başlık çözümleme",
              "first": 606,
              "last": 610
            },
            {
              "id": "boot_contract.regions",
              "title": "Başlangıç rezervasyon listesi",
              "first": 611,
              "last": 615
            },
            {
              "id": "boot_contract.finalize",
              "title": "Firmware sonrası sahiplik devri",
              "first": 616,
              "last": 620
            }
          ]
        },
        {
          "id": "entry",
          "title": "AArch64 giriş ve bağlayıcı",
          "layer": "arch",
          "first": 621,
          "last": 640,
          "features": [
            {
              "id": "entry.level",
              "title": "EL1 giriş normalizasyonu",
              "first": 621,
              "last": 625
            },
            {
              "id": "entry.sections",
              "title": "Kod veri BSS sınırları",
              "first": 626,
              "last": 630
            },
            {
              "id": "entry.stack",
              "title": "İlk kernel yığını",
              "first": 631,
              "last": 635
            },
            {
              "id": "entry.arguments",
              "title": "Giriş kayıtlarının korunması",
              "first": 636,
              "last": 640
            }
          ]
        },
        {
          "id": "runtime",
          "title": "Tek ürün başlatma zinciri",
          "layer": "kernel",
          "first": 641,
          "last": 660,
          "features": [
            {
              "id": "runtime.stages",
              "title": "Runtime durum makinesi",
              "first": 641,
              "last": 645
            },
            {
              "id": "runtime.services",
              "title": "Hizmet kayıt sahipliği",
              "first": 646,
              "last": 650
            },
            {
              "id": "runtime.profiles",
              "title": "Deney ürün profil ayrımı",
              "first": 651,
              "last": 655
            },
            {
              "id": "runtime.rollback",
              "title": "Başlatma geri alma sırası",
              "first": 656,
              "last": 660
            }
          ]
        },
        {
          "id": "diagnostics",
          "title": "Panik ve yapılandırılmış tanı",
          "layer": "kernel",
          "first": 661,
          "last": 680,
          "features": [
            {
              "id": "diagnostics.events",
              "title": "Sıralı tanı kaydı",
              "first": 661,
              "last": 665
            },
            {
              "id": "diagnostics.panic",
              "title": "Tahsis gerektirmeyen panik",
              "first": 666,
              "last": 670
            },
            {
              "id": "diagnostics.fault",
              "title": "ESR FAR bağlam raporu",
              "first": 671,
              "last": 675
            },
            {
              "id": "diagnostics.redaction",
              "title": "Günlük bilgi sınırı",
              "first": 676,
              "last": 680
            }
          ]
        },
        {
          "id": "platform",
          "title": "Konuk platform keşfi",
          "layer": "arch",
          "first": 681,
          "last": 700,
          "features": [
            {
              "id": "platform.tree",
              "title": "Sınırlı DTB yürütme",
              "first": 681,
              "last": 685
            },
            {
              "id": "platform.devices",
              "title": "UART GIC timer tanımları",
              "first": 686,
              "last": 690
            },
            {
              "id": "platform.ram",
              "title": "Çoklu RAM bankası modeli",
              "first": 691,
              "last": 695
            },
            {
              "id": "platform.features",
              "title": "CPU yetenek matrisi",
              "first": 696,
              "last": 700
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K601",
          "K602",
          "K603",
          "K604",
          "K605",
          "K606",
          "K607",
          "K608",
          "K609",
          "K610",
          "K611",
          "K612",
          "K613",
          "K614",
          "K615",
          "K616",
          "K617",
          "K618",
          "K619",
          "K620",
          "K621",
          "K622",
          "K623",
          "K624",
          "K625",
          "K626",
          "K627",
          "K628",
          "K629",
          "K630",
          "K631",
          "K632",
          "K633",
          "K634",
          "K635",
          "K636",
          "K637",
          "K638",
          "K639",
          "K640",
          "K641",
          "K642",
          "K643",
          "K644",
          "K645",
          "K646",
          "K647",
          "K648",
          "K649",
          "K650",
          "K651",
          "K652",
          "K653",
          "K654",
          "K655",
          "K656",
          "K657",
          "K658",
          "K659",
          "K660",
          "K661",
          "K662",
          "K663",
          "K664",
          "K665",
          "K666",
          "K667",
          "K668",
          "K669",
          "K670",
          "K671",
          "K672",
          "K673",
          "K674",
          "K675",
          "K676",
          "K677",
          "K678",
          "K679",
          "K680",
          "K681",
          "K682",
          "K683",
          "K684",
          "K685",
          "K686",
          "K687",
          "K688",
          "K689",
          "K690",
          "K691",
          "K692",
          "K693",
          "K694",
          "K695",
          "K696",
          "K697",
          "K698",
          "K699",
          "K700"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 2,
      "title": "Fiziksel bellek ve kernel heap",
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir.",
      "exit": "Çerçeve heap ve DMA sahipleri ölçülür; tükenme veya çift iade hiçbir canlı sahibi bozmaz.",
      "dependencies": [
        1
      ],
      "first": 701,
      "last": 800,
      "href": "/isletim-sistemi-faz-02",
      "modules": [
        {
          "id": "frame_authority",
          "title": "Fiziksel RAM yetkisi",
          "layer": "kernel",
          "first": 701,
          "last": 720,
          "features": [
            {
              "id": "frame_authority.classify",
              "title": "Firmware RAM sınıfları",
              "first": 701,
              "last": 705
            },
            {
              "id": "frame_authority.reserve",
              "title": "Dinamik rezervasyon API",
              "first": 706,
              "last": 710
            },
            {
              "id": "frame_authority.endpoints",
              "title": "Bankaların uç sayfaları",
              "first": 711,
              "last": 715
            },
            {
              "id": "frame_authority.audit",
              "title": "Sahiplik muhasebesi",
              "first": 716,
              "last": 720
            }
          ]
        },
        {
          "id": "frame_metadata",
          "title": "Çerçeve metadata ömrü",
          "layer": "kernel",
          "first": 721,
          "last": 740,
          "features": [
            {
              "id": "frame_metadata.owner",
              "title": "Sahip ve nesil kaydı",
              "first": 721,
              "last": 725
            },
            {
              "id": "frame_metadata.zero",
              "title": "Kullanıcı çerçevesi sıfırlama",
              "first": 726,
              "last": 730
            },
            {
              "id": "frame_metadata.pins",
              "title": "Pin referans sayısı",
              "first": 731,
              "last": 735
            },
            {
              "id": "frame_metadata.reclaim",
              "title": "Metadata kapasite tükenmesi",
              "first": 736,
              "last": 740
            }
          ]
        },
        {
          "id": "buddy",
          "title": "Çok sayfalı fiziksel tahsis",
          "layer": "kernel",
          "first": 741,
          "last": 760,
          "features": [
            {
              "id": "buddy.orders",
              "title": "Buddy mertebe düzeni",
              "first": 741,
              "last": 745
            },
            {
              "id": "buddy.split",
              "title": "Blok bölme işlemi",
              "first": 746,
              "last": 750
            },
            {
              "id": "buddy.merge",
              "title": "Arkadaş blok birleştirme",
              "first": 751,
              "last": 755
            },
            {
              "id": "buddy.fallback",
              "title": "Parçalanmış RAM yolu",
              "first": 756,
              "last": 760
            }
          ]
        },
        {
          "id": "kernel_heap",
          "title": "Ürün kernel nesne ayırıcısı",
          "layer": "kernel",
          "first": 761,
          "last": 780,
          "features": [
            {
              "id": "kernel_heap.classes",
              "title": "Slab boyut sınıfları",
              "first": 761,
              "last": 765
            },
            {
              "id": "kernel_heap.large",
              "title": "Büyük kernel nesneleri",
              "first": 766,
              "last": 770
            },
            {
              "id": "kernel_heap.free",
              "title": "Heap nesne iadesi",
              "first": 771,
              "last": 775
            },
            {
              "id": "kernel_heap.pressure",
              "title": "Heap baskı politikası",
              "first": 776,
              "last": 780
            }
          ]
        },
        {
          "id": "dma_memory",
          "title": "DMA tampon sahipliği",
          "layer": "kernel",
          "first": 781,
          "last": 800,
          "features": [
            {
              "id": "dma_memory.lease",
              "title": "Aygıta bağlı DMA lease",
              "first": 781,
              "last": 785
            },
            {
              "id": "dma_memory.address",
              "title": "DMA fiziksel aralık denetimi",
              "first": 786,
              "last": 790
            },
            {
              "id": "dma_memory.ordering",
              "title": "DMA bellek bariyerleri",
              "first": 791,
              "last": 795
            },
            {
              "id": "dma_memory.reset",
              "title": "Reset sonrası DMA karantinası",
              "first": 796,
              "last": 800
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K701",
          "K702",
          "K703",
          "K704",
          "K705",
          "K706",
          "K707",
          "K708",
          "K709",
          "K710",
          "K711",
          "K712",
          "K713",
          "K714",
          "K715",
          "K716",
          "K717",
          "K718",
          "K719",
          "K720",
          "K721",
          "K722",
          "K723",
          "K724",
          "K725",
          "K726",
          "K727",
          "K728",
          "K729",
          "K730",
          "K731",
          "K732",
          "K733",
          "K734",
          "K735",
          "K736",
          "K737",
          "K738",
          "K739",
          "K740",
          "K741",
          "K742",
          "K743",
          "K744",
          "K745",
          "K746",
          "K747",
          "K748",
          "K749",
          "K750",
          "K751",
          "K752",
          "K753",
          "K754",
          "K755",
          "K756",
          "K757",
          "K758",
          "K759",
          "K760",
          "K761",
          "K762",
          "K763",
          "K764",
          "K765",
          "K766",
          "K767",
          "K768",
          "K769",
          "K770",
          "K771",
          "K772",
          "K773",
          "K774",
          "K775",
          "K776",
          "K777",
          "K778",
          "K779",
          "K780",
          "K781",
          "K782",
          "K783",
          "K784",
          "K785",
          "K786",
          "K787",
          "K788",
          "K789",
          "K790",
          "K791",
          "K792",
          "K793",
          "K794",
          "K795",
          "K796",
          "K797",
          "K798",
          "K799",
          "K800"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 3,
      "title": "Sanal bellek ve adres alanları",
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir.",
      "exit": "Kullanıcı süreçleri kernel MMIO ve birbirlerinin sayfalarını göremez; map unmap ve hata yolları ölçülür.",
      "dependencies": [
        2
      ],
      "first": 801,
      "last": 900,
      "href": "/isletim-sistemi-faz-03",
      "modules": [
        {
          "id": "page_tables",
          "title": "Sayfa tablosu sahipliği",
          "layer": "arch",
          "first": 801,
          "last": 820,
          "features": [
            {
              "id": "page_tables.levels",
              "title": "AArch64 tablo düzeyleri",
              "first": 801,
              "last": 805
            },
            {
              "id": "page_tables.allocate",
              "title": "Tablo sayfası tahsisi",
              "first": 806,
              "last": 810
            },
            {
              "id": "page_tables.permissions",
              "title": "RW RX ve PXN UXN",
              "first": 811,
              "last": 815
            },
            {
              "id": "page_tables.destroy",
              "title": "Tablo ağacı imhası",
              "first": 816,
              "last": 820
            }
          ]
        },
        {
          "id": "address_spaces",
          "title": "Adres alanı ve ASID",
          "layer": "kernel",
          "first": 821,
          "last": 840,
          "features": [
            {
              "id": "address_spaces.create",
              "title": "Adres alanı oluşturma",
              "first": 821,
              "last": 825
            },
            {
              "id": "address_spaces.switch",
              "title": "TTBR ASID bağlam geçişi",
              "first": 826,
              "last": 830
            },
            {
              "id": "address_spaces.recycle",
              "title": "ASID nesil geri dönüşümü",
              "first": 831,
              "last": 835
            },
            {
              "id": "address_spaces.kernel_map",
              "title": "Ortak kernel harita sınırı",
              "first": 836,
              "last": 840
            }
          ]
        },
        {
          "id": "mapping",
          "title": "Map unmap ve koruma",
          "layer": "kernel",
          "first": 841,
          "last": 860,
          "features": [
            {
              "id": "mapping.insert",
              "title": "Atomik çok sayfalı map",
              "first": 841,
              "last": 845
            },
            {
              "id": "mapping.remove",
              "title": "Aralık unmap işlemi",
              "first": 846,
              "last": 850
            },
            {
              "id": "mapping.protect",
              "title": "mprotect benzeri izin dönüşümü",
              "first": 851,
              "last": 855
            },
            {
              "id": "mapping.guard",
              "title": "Adres boşlukları ve guard",
              "first": 856,
              "last": 860
            }
          ]
        },
        {
          "id": "user_copy",
          "title": "Genel kullanıcı kopyalama",
          "layer": "kernel",
          "first": 861,
          "last": 880,
          "features": [
            {
              "id": "user_copy.read",
              "title": "Çok sayfalı copy_from_user",
              "first": 861,
              "last": 865
            },
            {
              "id": "user_copy.write",
              "title": "Çok sayfalı copy_to_user",
              "first": 866,
              "last": 870
            },
            {
              "id": "user_copy.strings",
              "title": "Sınırlı kullanıcı metni",
              "first": 871,
              "last": 875
            },
            {
              "id": "user_copy.race",
              "title": "Kopya sırasında mapping ömrü",
              "first": 876,
              "last": 880
            }
          ]
        },
        {
          "id": "page_faults",
          "title": "Talep sayfalama ve fault",
          "layer": "kernel",
          "first": 881,
          "last": 900,
          "features": [
            {
              "id": "page_faults.classify",
              "title": "Kullanıcı fault sınıfları",
              "first": 881,
              "last": 885
            },
            {
              "id": "page_faults.anonymous",
              "title": "Anonim sıfır sayfa",
              "first": 886,
              "last": 890
            },
            {
              "id": "page_faults.stack_grow",
              "title": "Sınırlı yığın büyümesi",
              "first": 891,
              "last": 895
            },
            {
              "id": "page_faults.copy_on_write",
              "title": "COW sayfa ayrışması",
              "first": 896,
              "last": 900
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K801",
          "K802",
          "K803",
          "K804",
          "K805",
          "K806",
          "K807",
          "K808",
          "K809",
          "K810",
          "K811",
          "K812",
          "K813",
          "K814",
          "K815",
          "K816",
          "K817",
          "K818",
          "K819",
          "K820",
          "K821",
          "K822",
          "K823",
          "K824",
          "K825",
          "K826",
          "K827",
          "K828",
          "K829",
          "K830",
          "K831",
          "K832",
          "K833",
          "K834",
          "K835",
          "K836",
          "K837",
          "K838",
          "K839",
          "K840",
          "K841",
          "K842",
          "K843",
          "K844",
          "K845",
          "K846",
          "K847",
          "K848",
          "K849",
          "K850",
          "K851",
          "K852",
          "K853",
          "K854",
          "K855",
          "K856",
          "K857",
          "K858",
          "K859",
          "K860",
          "K861",
          "K862",
          "K863",
          "K864",
          "K865",
          "K866",
          "K867",
          "K868",
          "K869",
          "K870",
          "K871",
          "K872",
          "K873",
          "K874",
          "K875",
          "K876",
          "K877",
          "K878",
          "K879",
          "K880",
          "K881",
          "K882",
          "K883",
          "K884",
          "K885",
          "K886",
          "K887",
          "K888",
          "K889",
          "K890",
          "K891",
          "K892",
          "K893",
          "K894",
          "K895",
          "K896",
          "K897",
          "K898",
          "K899",
          "K900"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 4,
      "title": "Kesme saat ve kernel senkronizasyonu",
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır.",
      "exit": "Timer ve aygıt IRQ hizmetleri bounded çalışır; register ve kaynak muhasebesi uzun koşuda korunur.",
      "dependencies": [
        3
      ],
      "first": 901,
      "last": 1000,
      "href": "/isletim-sistemi-faz-04",
      "modules": [
        {
          "id": "exceptions",
          "title": "Ürün exception yolları",
          "layer": "arch",
          "first": 901,
          "last": 920,
          "features": [
            {
              "id": "exceptions.vectors",
              "title": "Bütün exception slotları",
              "first": 901,
              "last": 905
            },
            {
              "id": "exceptions.frames",
              "title": "GP SIMD exception çerçevesi",
              "first": 906,
              "last": 910
            },
            {
              "id": "exceptions.nested",
              "title": "İç içe exception politikası",
              "first": 911,
              "last": 915
            },
            {
              "id": "exceptions.return",
              "title": "EL0 dönüş kontrolü",
              "first": 916,
              "last": 920
            }
          ]
        },
        {
          "id": "gic",
          "title": "GICv3 hizmet yaşamı",
          "layer": "arch",
          "first": 921,
          "last": 940,
          "features": [
            {
              "id": "gic.routing",
              "title": "INTID sahip ve hedef kaydı",
              "first": 921,
              "last": 925
            },
            {
              "id": "gic.ack",
              "title": "Acknowledge ve EOI sırası",
              "first": 926,
              "last": 930
            },
            {
              "id": "gic.budget",
              "title": "IRQ fırtına bütçesi",
              "first": 931,
              "last": 935
            },
            {
              "id": "gic.teardown",
              "title": "IRQ kaydını güvenli sökme",
              "first": 936,
              "last": 940
            }
          ]
        },
        {
          "id": "clock",
          "title": "Monoton zaman ve timer",
          "layer": "kernel",
          "first": 941,
          "last": 960,
          "features": [
            {
              "id": "clock.frequency",
              "title": "Sayaç frekansı sözleşmesi",
              "first": 941,
              "last": 945
            },
            {
              "id": "clock.deadlines",
              "title": "Mutlak deadline modeli",
              "first": 946,
              "last": 950
            },
            {
              "id": "clock.missed",
              "title": "Atlanan tick muhasebesi",
              "first": 951,
              "last": 955
            },
            {
              "id": "clock.cancel",
              "title": "Timer iptal ve nesil",
              "first": 956,
              "last": 960
            }
          ]
        },
        {
          "id": "locking",
          "title": "Kernel kilit bağlamları",
          "layer": "kernel",
          "first": 961,
          "last": 980,
          "features": [
            {
              "id": "locking.irq_guard",
              "title": "IRQ save restore guard",
              "first": 961,
              "last": 965
            },
            {
              "id": "locking.spin",
              "title": "Sahipli spin kilidi",
              "first": 966,
              "last": 970
            },
            {
              "id": "locking.mutex",
              "title": "Uyuyabilen kernel mutex",
              "first": 971,
              "last": 975
            },
            {
              "id": "locking.ordering",
              "title": "Kilit sırası grafiği",
              "first": 976,
              "last": 980
            }
          ]
        },
        {
          "id": "deferred_work",
          "title": "IRQ sonrası iş hizmeti",
          "layer": "kernel",
          "first": 981,
          "last": 1000,
          "features": [
            {
              "id": "deferred_work.queue",
              "title": "Sabit deferred iş kuyruğu",
              "first": 981,
              "last": 985
            },
            {
              "id": "deferred_work.context",
              "title": "Üst yarı alt yarı ayrımı",
              "first": 986,
              "last": 990
            },
            {
              "id": "deferred_work.coalesce",
              "title": "Tekrarlanan iş birleştirme",
              "first": 991,
              "last": 995
            },
            {
              "id": "deferred_work.drain",
              "title": "Hizmet kapatma ve drain",
              "first": 996,
              "last": 1000
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K901",
          "K902",
          "K903",
          "K904",
          "K905",
          "K906",
          "K907",
          "K908",
          "K909",
          "K910",
          "K911",
          "K912",
          "K913",
          "K914",
          "K915",
          "K916",
          "K917",
          "K918",
          "K919",
          "K920",
          "K921",
          "K922",
          "K923",
          "K924",
          "K925",
          "K926",
          "K927",
          "K928",
          "K929",
          "K930",
          "K931",
          "K932",
          "K933",
          "K934",
          "K935",
          "K936",
          "K937",
          "K938",
          "K939",
          "K940",
          "K941",
          "K942",
          "K943",
          "K944",
          "K945",
          "K946",
          "K947",
          "K948",
          "K949",
          "K950",
          "K951",
          "K952",
          "K953",
          "K954",
          "K955",
          "K956",
          "K957",
          "K958",
          "K959",
          "K960",
          "K961",
          "K962",
          "K963",
          "K964",
          "K965",
          "K966",
          "K967",
          "K968",
          "K969",
          "K970",
          "K971",
          "K972",
          "K973",
          "K974",
          "K975",
          "K976",
          "K977",
          "K978",
          "K979",
          "K980",
          "K981",
          "K982",
          "K983",
          "K984",
          "K985",
          "K986",
          "K987",
          "K988",
          "K989",
          "K990",
          "K991",
          "K992",
          "K993",
          "K994",
          "K995",
          "K996",
          "K997",
          "K998",
          "K999",
          "K1000"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 5,
      "title": "İş parçacığı ve preemptive scheduler",
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır.",
      "exit": "CPU yoğun ve uyuyan görevler ilerler; ölü bağlam seçilmez ve yığın register muhasebesi korunur.",
      "dependencies": [
        4
      ],
      "first": 1001,
      "last": 1100,
      "href": "/isletim-sistemi-faz-05",
      "modules": [
        {
          "id": "threads",
          "title": "Thread kimliği ve yığın",
          "layer": "kernel",
          "first": 1001,
          "last": 1020,
          "features": [
            {
              "id": "threads.identity",
              "title": "Thread slot ve nesil",
              "first": 1001,
              "last": 1005
            },
            {
              "id": "threads.stacks",
              "title": "Thread özel kernel yığını",
              "first": 1006,
              "last": 1010
            },
            {
              "id": "threads.states",
              "title": "Ready Running Sleeping Dead",
              "first": 1011,
              "last": 1015
            },
            {
              "id": "threads.retire",
              "title": "Thread sonlanma iadesi",
              "first": 1016,
              "last": 1020
            }
          ]
        },
        {
          "id": "context_switch",
          "title": "Kernel bağlam geçişi",
          "layer": "arch",
          "first": 1021,
          "last": 1040,
          "features": [
            {
              "id": "context_switch.callee_saved",
              "title": "Callee saved kayıt düzeni",
              "first": 1021,
              "last": 1025
            },
            {
              "id": "context_switch.simd",
              "title": "SIMD FPU sahipliği",
              "first": 1026,
              "last": 1030
            },
            {
              "id": "context_switch.preempt",
              "title": "Timerdan thread değiştirme",
              "first": 1031,
              "last": 1035
            },
            {
              "id": "context_switch.idle",
              "title": "Idle ve WFI yolu",
              "first": 1036,
              "last": 1040
            }
          ]
        },
        {
          "id": "runqueue",
          "title": "Ürün runqueue yapısı",
          "layer": "kernel",
          "first": 1041,
          "last": 1060,
          "features": [
            {
              "id": "runqueue.enqueue",
              "title": "Ready kuyruğa tek ekleme",
              "first": 1041,
              "last": 1045
            },
            {
              "id": "runqueue.select",
              "title": "Çalışır görev seçimi",
              "first": 1046,
              "last": 1050
            },
            {
              "id": "runqueue.quantum",
              "title": "Zaman dilimi hesabı",
              "first": 1051,
              "last": 1055
            },
            {
              "id": "runqueue.priority",
              "title": "Sınırlı öncelik modeli",
              "first": 1056,
              "last": 1060
            }
          ]
        },
        {
          "id": "thread_wait",
          "title": "Sleep wake ve bekleme",
          "layer": "kernel",
          "first": 1061,
          "last": 1080,
          "features": [
            {
              "id": "thread_wait.wait_token",
              "title": "Bekleme token nesli",
              "first": 1061,
              "last": 1065
            },
            {
              "id": "thread_wait.lost_wake",
              "title": "Atomik koşul ve kuyruğa giriş",
              "first": 1066,
              "last": 1070
            },
            {
              "id": "thread_wait.timeout",
              "title": "Bekleme süre aşımı",
              "first": 1071,
              "last": 1075
            },
            {
              "id": "thread_wait.cancel",
              "title": "Beklemeyi task iptalinde sökme",
              "first": 1076,
              "last": 1080
            }
          ]
        },
        {
          "id": "scheduler_policy",
          "title": "Scheduler hizmet kabulü",
          "layer": "kernel",
          "first": 1081,
          "last": 1100,
          "features": [
            {
              "id": "scheduler_policy.fairness",
              "title": "Ölçülen görev adaleti",
              "first": 1081,
              "last": 1085
            },
            {
              "id": "scheduler_policy.inversion",
              "title": "Öncelik terslenmesi tanısı",
              "first": 1086,
              "last": 1090
            },
            {
              "id": "scheduler_policy.accounting",
              "title": "CPU ve uyku hesapları",
              "first": 1091,
              "last": 1095
            },
            {
              "id": "scheduler_policy.long_run",
              "title": "Scheduler uzun koşu kapısı",
              "first": 1096,
              "last": 1100
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1001",
          "K1002",
          "K1003",
          "K1004",
          "K1005",
          "K1006",
          "K1007",
          "K1008",
          "K1009",
          "K1010",
          "K1011",
          "K1012",
          "K1013",
          "K1014",
          "K1015",
          "K1016",
          "K1017",
          "K1018",
          "K1019",
          "K1020",
          "K1021",
          "K1022",
          "K1023",
          "K1024",
          "K1025",
          "K1026",
          "K1027",
          "K1028",
          "K1029",
          "K1030",
          "K1031",
          "K1032",
          "K1033",
          "K1034",
          "K1035",
          "K1036",
          "K1037",
          "K1038",
          "K1039",
          "K1040",
          "K1041",
          "K1042",
          "K1043",
          "K1044",
          "K1045",
          "K1046",
          "K1047",
          "K1048",
          "K1049",
          "K1050",
          "K1051",
          "K1052",
          "K1053",
          "K1054",
          "K1055",
          "K1056",
          "K1057",
          "K1058",
          "K1059",
          "K1060",
          "K1061",
          "K1062",
          "K1063",
          "K1064",
          "K1065",
          "K1066",
          "K1067",
          "K1068",
          "K1069",
          "K1070",
          "K1071",
          "K1072",
          "K1073",
          "K1074",
          "K1075",
          "K1076",
          "K1077",
          "K1078",
          "K1079",
          "K1080",
          "K1081",
          "K1082",
          "K1083",
          "K1084",
          "K1085",
          "K1086",
          "K1087",
          "K1088",
          "K1089",
          "K1090",
          "K1091",
          "K1092",
          "K1093",
          "K1094",
          "K1095",
          "K1096",
          "K1097",
          "K1098",
          "K1099",
          "K1100"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 6,
      "title": "Süreç modeli ve syscall ABI",
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır.",
      "exit": "Üç bağımsız EL0 süreç spawn syscall wait exit ve hata yalıtımını tek ürün imajında tamamlar.",
      "dependencies": [
        5
      ],
      "first": 1101,
      "last": 1200,
      "href": "/isletim-sistemi-faz-06",
      "modules": [
        {
          "id": "process_table",
          "title": "Süreç kaydı ve sahiplik",
          "layer": "kernel",
          "first": 1101,
          "last": 1120,
          "features": [
            {
              "id": "process_table.pid",
              "title": "PID ve nesil tablosu",
              "first": 1101,
              "last": 1105
            },
            {
              "id": "process_table.parent",
              "title": "Ebeveyn çocuk bağı",
              "first": 1106,
              "last": 1110
            },
            {
              "id": "process_table.resources",
              "title": "Süreç kaynak torbası",
              "first": 1111,
              "last": 1115
            },
            {
              "id": "process_table.publish",
              "title": "Süreç atomik yayımlama",
              "first": 1116,
              "last": 1120
            }
          ]
        },
        {
          "id": "syscall_abi",
          "title": "Sürümlü native syscall",
          "layer": "kernel",
          "first": 1121,
          "last": 1140,
          "features": [
            {
              "id": "syscall_abi.numbers",
              "title": "Syscall numara ve sürüm",
              "first": 1121,
              "last": 1125
            },
            {
              "id": "syscall_abi.arguments",
              "title": "Kayıt argüman sözleşmesi",
              "first": 1126,
              "last": 1130
            },
            {
              "id": "syscall_abi.errors",
              "title": "Hata kodu ve sonuç tipi",
              "first": 1131,
              "last": 1135
            },
            {
              "id": "syscall_abi.dispatch",
              "title": "SVC dispatch tablosu",
              "first": 1136,
              "last": 1140
            }
          ]
        },
        {
          "id": "spawn_transaction",
          "title": "EL0 başlatma işlemi",
          "layer": "kernel",
          "first": 1141,
          "last": 1160,
          "features": [
            {
              "id": "spawn_transaction.image",
              "title": "Gömülü INIT imaj devri",
              "first": 1141,
              "last": 1145
            },
            {
              "id": "spawn_transaction.argv",
              "title": "Argv env ve kullanıcı stack",
              "first": 1146,
              "last": 1150
            },
            {
              "id": "spawn_transaction.entry",
              "title": "İlk EL0 ERET",
              "first": 1151,
              "last": 1155
            },
            {
              "id": "spawn_transaction.unwind",
              "title": "Kısmi spawn geri alma",
              "first": 1156,
              "last": 1160
            }
          ]
        },
        {
          "id": "process_rights",
          "title": "Erken süreç yetki sınırı",
          "layer": "kernel",
          "first": 1161,
          "last": 1180,
          "features": [
            {
              "id": "process_rights.principal",
              "title": "Süreç principal kimliği",
              "first": 1161,
              "last": 1165
            },
            {
              "id": "process_rights.inherit",
              "title": "Spawn yetki devri",
              "first": 1166,
              "last": 1170
            },
            {
              "id": "process_rights.inspect",
              "title": "Başka süreci gözleme",
              "first": 1171,
              "last": 1175
            },
            {
              "id": "process_rights.limits",
              "title": "Süreç quota başlangıcı",
              "first": 1176,
              "last": 1180
            }
          ]
        },
        {
          "id": "process_exit",
          "title": "Exit wait ve reap",
          "layer": "kernel",
          "first": 1181,
          "last": 1200,
          "features": [
            {
              "id": "process_exit.exit_code",
              "title": "Temiz ve fault çıkış tipi",
              "first": 1181,
              "last": 1185
            },
            {
              "id": "process_exit.wait",
              "title": "Tek teslim edilen çocuk sonucu",
              "first": 1186,
              "last": 1190
            },
            {
              "id": "process_exit.orphan",
              "title": "Yetim çocuk politikası",
              "first": 1191,
              "last": 1195
            },
            {
              "id": "process_exit.retirement",
              "title": "Süreç son kaynak emekliliği",
              "first": 1196,
              "last": 1200
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1101",
          "K1102",
          "K1103",
          "K1104",
          "K1105",
          "K1106",
          "K1107",
          "K1108",
          "K1109",
          "K1110",
          "K1111",
          "K1112",
          "K1113",
          "K1114",
          "K1115",
          "K1116",
          "K1117",
          "K1118",
          "K1119",
          "K1120",
          "K1121",
          "K1122",
          "K1123",
          "K1124",
          "K1125",
          "K1126",
          "K1127",
          "K1128",
          "K1129",
          "K1130",
          "K1131",
          "K1132",
          "K1133",
          "K1134",
          "K1135",
          "K1136",
          "K1137",
          "K1138",
          "K1139",
          "K1140",
          "K1141",
          "K1142",
          "K1143",
          "K1144",
          "K1145",
          "K1146",
          "K1147",
          "K1148",
          "K1149",
          "K1150",
          "K1151",
          "K1152",
          "K1153",
          "K1154",
          "K1155",
          "K1156",
          "K1157",
          "K1158",
          "K1159",
          "K1160",
          "K1161",
          "K1162",
          "K1163",
          "K1164",
          "K1165",
          "K1166",
          "K1167",
          "K1168",
          "K1169",
          "K1170",
          "K1171",
          "K1172",
          "K1173",
          "K1174",
          "K1175",
          "K1176",
          "K1177",
          "K1178",
          "K1179",
          "K1180",
          "K1181",
          "K1182",
          "K1183",
          "K1184",
          "K1185",
          "K1186",
          "K1187",
          "K1188",
          "K1189",
          "K1190",
          "K1191",
          "K1192",
          "K1193",
          "K1194",
          "K1195",
          "K1196",
          "K1197",
          "K1198",
          "K1199",
          "K1200"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 7,
      "title": "Rust kullanıcı alanı INIT ve kabuk",
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez.",
      "exit": "INIT bir Rust kabuğu başlatır; kabuk komut çalıştırır bekler ve hatadan sonra yeni istem verir.",
      "dependencies": [
        6
      ],
      "first": 1201,
      "last": 1300,
      "href": "/isletim-sistemi-faz-07",
      "modules": [
        {
          "id": "user_runtime",
          "title": "No_std kullanıcı runtimeı",
          "layer": "userspace",
          "first": 1201,
          "last": 1220,
          "features": [
            {
              "id": "user_runtime.start",
              "title": "Rust kullanıcı giriş noktası",
              "first": 1201,
              "last": 1205
            },
            {
              "id": "user_runtime.panic",
              "title": "EL0 panik sonlanması",
              "first": 1206,
              "last": 1210
            },
            {
              "id": "user_runtime.alloc",
              "title": "Kullanıcı allocator köprüsü",
              "first": 1211,
              "last": 1215
            },
            {
              "id": "user_runtime.build",
              "title": "Rust program derleme profili",
              "first": 1216,
              "last": 1220
            }
          ]
        },
        {
          "id": "user_api",
          "title": "Native kullanıcı kütüphanesi",
          "layer": "userspace",
          "first": 1221,
          "last": 1240,
          "features": [
            {
              "id": "user_api.wrappers",
              "title": "Tipli syscall wrapperları",
              "first": 1221,
              "last": 1225
            },
            {
              "id": "user_api.io",
              "title": "Sınırlı read write döngüsü",
              "first": 1226,
              "last": 1230
            },
            {
              "id": "user_api.ownership",
              "title": "RAII kullanıcı handle",
              "first": 1231,
              "last": 1235
            },
            {
              "id": "user_api.compatibility",
              "title": "ABI uyumluluk sorgusu",
              "first": 1236,
              "last": 1240
            }
          ]
        },
        {
          "id": "init_service",
          "title": "PID1 hizmet başlatıcı",
          "layer": "userspace",
          "first": 1241,
          "last": 1260,
          "features": [
            {
              "id": "init_service.manifest",
              "title": "INIT hizmet manifesti",
              "first": 1241,
              "last": 1245
            },
            {
              "id": "init_service.start_order",
              "title": "INIT başlangıç sırası",
              "first": 1246,
              "last": 1250
            },
            {
              "id": "init_service.restart",
              "title": "Sınırlı hizmet yeniden başlatma",
              "first": 1251,
              "last": 1255
            },
            {
              "id": "init_service.reaping",
              "title": "INIT çocuk toplama",
              "first": 1256,
              "last": 1260
            }
          ]
        },
        {
          "id": "shell",
          "title": "Rust komut kabuğu",
          "layer": "userspace",
          "first": 1261,
          "last": 1280,
          "features": [
            {
              "id": "shell.lexer",
              "title": "Kabuk sözcük ve tırnak çözümü",
              "first": 1261,
              "last": 1265
            },
            {
              "id": "shell.commands",
              "title": "Builtin ve external komut ayrımı",
              "first": 1266,
              "last": 1270
            },
            {
              "id": "shell.launch",
              "title": "Ön plan komut çalıştırma",
              "first": 1271,
              "last": 1275
            },
            {
              "id": "shell.interrupt",
              "title": "Kabuk girdi iptali",
              "first": 1276,
              "last": 1280
            }
          ]
        },
        {
          "id": "core_tools",
          "title": "İlk Rust kullanıcı araçları",
          "layer": "userspace",
          "first": 1281,
          "last": 1300,
          "features": [
            {
              "id": "core_tools.echo",
              "title": "Echo ve çıktı aracı",
              "first": 1281,
              "last": 1285
            },
            {
              "id": "core_tools.read_file",
              "title": "Cat benzeri RO araç",
              "first": 1286,
              "last": 1290
            },
            {
              "id": "core_tools.directory",
              "title": "Ls benzeri dizin aracı",
              "first": 1291,
              "last": 1295
            },
            {
              "id": "core_tools.process_view",
              "title": "Ps ve uptime aracı",
              "first": 1296,
              "last": 1300
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1201",
          "K1202",
          "K1203",
          "K1204",
          "K1205",
          "K1206",
          "K1207",
          "K1208",
          "K1209",
          "K1210",
          "K1211",
          "K1212",
          "K1213",
          "K1214",
          "K1215",
          "K1216",
          "K1217",
          "K1218",
          "K1219",
          "K1220",
          "K1221",
          "K1222",
          "K1223",
          "K1224",
          "K1225",
          "K1226",
          "K1227",
          "K1228",
          "K1229",
          "K1230",
          "K1231",
          "K1232",
          "K1233",
          "K1234",
          "K1235",
          "K1236",
          "K1237",
          "K1238",
          "K1239",
          "K1240",
          "K1241",
          "K1242",
          "K1243",
          "K1244",
          "K1245",
          "K1246",
          "K1247",
          "K1248",
          "K1249",
          "K1250",
          "K1251",
          "K1252",
          "K1253",
          "K1254",
          "K1255",
          "K1256",
          "K1257",
          "K1258",
          "K1259",
          "K1260",
          "K1261",
          "K1262",
          "K1263",
          "K1264",
          "K1265",
          "K1266",
          "K1267",
          "K1268",
          "K1269",
          "K1270",
          "K1271",
          "K1272",
          "K1273",
          "K1274",
          "K1275",
          "K1276",
          "K1277",
          "K1278",
          "K1279",
          "K1280",
          "K1281",
          "K1282",
          "K1283",
          "K1284",
          "K1285",
          "K1286",
          "K1287",
          "K1288",
          "K1289",
          "K1290",
          "K1291",
          "K1292",
          "K1293",
          "K1294",
          "K1295",
          "K1296",
          "K1297",
          "K1298",
          "K1299",
          "K1300"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 8,
      "title": "Handle IPC ve hizmet sınırları",
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur.",
      "exit": "İki kullanıcı servisi mesaj bekleme paylaşılmış bellek ve kontrollü handle devrini hata yalıtımıyla tamamlar.",
      "dependencies": [
        7
      ],
      "first": 1301,
      "last": 1400,
      "href": "/isletim-sistemi-faz-08",
      "modules": [
        {
          "id": "handles",
          "title": "Genel nesne handle tablosu",
          "layer": "kernel",
          "first": 1301,
          "last": 1320,
          "features": [
            {
              "id": "handles.types",
              "title": "Tipli nesne handle",
              "first": 1301,
              "last": 1305
            },
            {
              "id": "handles.generation",
              "title": "Handle nesil tekrar kullanımı",
              "first": 1306,
              "last": 1310
            },
            {
              "id": "handles.rights",
              "title": "Hak daraltma ve çoğaltma",
              "first": 1311,
              "last": 1315
            },
            {
              "id": "handles.close",
              "title": "Son referans nesne kapanışı",
              "first": 1316,
              "last": 1320
            }
          ]
        },
        {
          "id": "channels",
          "title": "Kullanıcı mesaj kanalları",
          "layer": "kernel",
          "first": 1321,
          "last": 1340,
          "features": [
            {
              "id": "channels.capacity",
              "title": "Mesaj boyu ve kuyruk sınırı",
              "first": 1321,
              "last": 1325
            },
            {
              "id": "channels.copy",
              "title": "Sahipli mesaj kopyası",
              "first": 1326,
              "last": 1330
            },
            {
              "id": "channels.transfer",
              "title": "Mesajla handle devri",
              "first": 1331,
              "last": 1335
            },
            {
              "id": "channels.peer_death",
              "title": "Eş ölümü ve kapalı kanal",
              "first": 1336,
              "last": 1340
            }
          ]
        },
        {
          "id": "waitsets",
          "title": "Çok nesneli bekleme",
          "layer": "kernel",
          "first": 1341,
          "last": 1360,
          "features": [
            {
              "id": "waitsets.registration",
              "title": "Waitset nesne kaydı",
              "first": 1341,
              "last": 1345
            },
            {
              "id": "waitsets.readiness",
              "title": "Seviye tetiklenen readiness",
              "first": 1346,
              "last": 1350
            },
            {
              "id": "waitsets.deadlines",
              "title": "Waitset timeout iptal yarışı",
              "first": 1351,
              "last": 1355
            },
            {
              "id": "waitsets.teardown",
              "title": "Waitset kapatma ömrü",
              "first": 1356,
              "last": 1360
            }
          ]
        },
        {
          "id": "shared_memory",
          "title": "Paylaşılan bellek nesneleri",
          "layer": "kernel",
          "first": 1361,
          "last": 1380,
          "features": [
            {
              "id": "shared_memory.create",
              "title": "Paylaşılan sayfa nesnesi",
              "first": 1361,
              "last": 1365
            },
            {
              "id": "shared_memory.seal",
              "title": "RO seal ve izin düşürme",
              "first": 1366,
              "last": 1370
            },
            {
              "id": "shared_memory.lifetime",
              "title": "Son map ve referans ömrü",
              "first": 1371,
              "last": 1375
            },
            {
              "id": "shared_memory.ring",
              "title": "Paylaşılan kullanıcı ringi",
              "first": 1376,
              "last": 1380
            }
          ]
        },
        {
          "id": "service_registry",
          "title": "Hizmet adları ve protokol",
          "layer": "userspace",
          "first": 1381,
          "last": 1400,
          "features": [
            {
              "id": "service_registry.names",
              "title": "Hizmet adı kayıt sahipliği",
              "first": 1381,
              "last": 1385
            },
            {
              "id": "service_registry.versions",
              "title": "Mesaj protokol sürümü",
              "first": 1386,
              "last": 1390
            },
            {
              "id": "service_registry.restart",
              "title": "Hizmet nesli yeniden bağlama",
              "first": 1391,
              "last": 1395
            },
            {
              "id": "service_registry.discovery",
              "title": "Kısıtlı hizmet keşfi",
              "first": 1396,
              "last": 1400
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1301",
          "K1302",
          "K1303",
          "K1304",
          "K1305",
          "K1306",
          "K1307",
          "K1308",
          "K1309",
          "K1310",
          "K1311",
          "K1312",
          "K1313",
          "K1314",
          "K1315",
          "K1316",
          "K1317",
          "K1318",
          "K1319",
          "K1320",
          "K1321",
          "K1322",
          "K1323",
          "K1324",
          "K1325",
          "K1326",
          "K1327",
          "K1328",
          "K1329",
          "K1330",
          "K1331",
          "K1332",
          "K1333",
          "K1334",
          "K1335",
          "K1336",
          "K1337",
          "K1338",
          "K1339",
          "K1340",
          "K1341",
          "K1342",
          "K1343",
          "K1344",
          "K1345",
          "K1346",
          "K1347",
          "K1348",
          "K1349",
          "K1350",
          "K1351",
          "K1352",
          "K1353",
          "K1354",
          "K1355",
          "K1356",
          "K1357",
          "K1358",
          "K1359",
          "K1360",
          "K1361",
          "K1362",
          "K1363",
          "K1364",
          "K1365",
          "K1366",
          "K1367",
          "K1368",
          "K1369",
          "K1370",
          "K1371",
          "K1372",
          "K1373",
          "K1374",
          "K1375",
          "K1376",
          "K1377",
          "K1378",
          "K1379",
          "K1380",
          "K1381",
          "K1382",
          "K1383",
          "K1384",
          "K1385",
          "K1386",
          "K1387",
          "K1388",
          "K1389",
          "K1390",
          "K1391",
          "K1392",
          "K1393",
          "K1394",
          "K1395",
          "K1396",
          "K1397",
          "K1398",
          "K1399",
          "K1400"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 9,
      "title": "Aygıt modeli PCI ve virtio",
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar.",
      "exit": "Konuk yalnız keşfettiği aygıtı sürer; PCI veya MMIO transport reset IRQ ve DMA ömrü aynı aygıt sahibine bağlıdır.",
      "dependencies": [
        8
      ],
      "first": 1401,
      "last": 1500,
      "href": "/isletim-sistemi-faz-09",
      "modules": [
        {
          "id": "device_registry",
          "title": "Konuk aygıt kayıtları",
          "layer": "kernel",
          "first": 1401,
          "last": 1420,
          "features": [
            {
              "id": "device_registry.identity",
              "title": "Aygıt kimliği ve nesli",
              "first": 1401,
              "last": 1405
            },
            {
              "id": "device_registry.resources",
              "title": "Aygıt kaynak sahipliği",
              "first": 1406,
              "last": 1410
            },
            {
              "id": "device_registry.driver_match",
              "title": "Driver eşleştirme tablosu",
              "first": 1411,
              "last": 1415
            },
            {
              "id": "device_registry.detach",
              "title": "Aygıt güvenli detach",
              "first": 1416,
              "last": 1420
            }
          ]
        },
        {
          "id": "pci_discovery",
          "title": "PCI ECAM keşfi",
          "layer": "arch",
          "first": 1421,
          "last": 1440,
          "features": [
            {
              "id": "pci_discovery.ecam",
              "title": "ECAM adres aralığı",
              "first": 1421,
              "last": 1425
            },
            {
              "id": "pci_discovery.headers",
              "title": "PCI header sınıfları",
              "first": 1426,
              "last": 1430
            },
            {
              "id": "pci_discovery.capabilities",
              "title": "PCI capability zinciri",
              "first": 1431,
              "last": 1435
            },
            {
              "id": "pci_discovery.bridges",
              "title": "PCI bus ve bridge ağacı",
              "first": 1436,
              "last": 1440
            }
          ]
        },
        {
          "id": "pci_resources",
          "title": "BAR IRQ ve MSI kaynakları",
          "layer": "arch",
          "first": 1441,
          "last": 1460,
          "features": [
            {
              "id": "pci_resources.bar_size",
              "title": "BAR boyut ve tür çözümü",
              "first": 1441,
              "last": 1445
            },
            {
              "id": "pci_resources.mapping",
              "title": "BAR device memory map",
              "first": 1446,
              "last": 1450
            },
            {
              "id": "pci_resources.intx",
              "title": "PCI INTx yönlendirme",
              "first": 1451,
              "last": 1455
            },
            {
              "id": "pci_resources.msix",
              "title": "MSIX kontrollü prototip",
              "first": 1456,
              "last": 1460
            }
          ]
        },
        {
          "id": "virtio_transport",
          "title": "Modern virtio transport",
          "layer": "kernel",
          "first": 1461,
          "last": 1480,
          "features": [
            {
              "id": "virtio_transport.mmio",
              "title": "Virtio MMIO v2 yolu",
              "first": 1461,
              "last": 1465
            },
            {
              "id": "virtio_transport.pci",
              "title": "Virtio PCI common config",
              "first": 1466,
              "last": 1470
            },
            {
              "id": "virtio_transport.features",
              "title": "Feature negotiation sözleşmesi",
              "first": 1471,
              "last": 1475
            },
            {
              "id": "virtio_transport.status",
              "title": "Virtio status yaşamı",
              "first": 1476,
              "last": 1480
            }
          ]
        },
        {
          "id": "virtqueue",
          "title": "Ürün virtqueue yönetimi",
          "layer": "kernel",
          "first": 1481,
          "last": 1500,
          "features": [
            {
              "id": "virtqueue.descriptors",
              "title": "Descriptor zincir sahipliği",
              "first": 1481,
              "last": 1485
            },
            {
              "id": "virtqueue.indices",
              "title": "Avail used ring sarmalanması",
              "first": 1486,
              "last": 1490
            },
            {
              "id": "virtqueue.completion",
              "title": "Tamamlama ID uzunluk status",
              "first": 1491,
              "last": 1495
            },
            {
              "id": "virtqueue.backpressure",
              "title": "Dolu kuyruk ve reset yolu",
              "first": 1496,
              "last": 1500
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1401",
          "K1402",
          "K1403",
          "K1404",
          "K1405",
          "K1406",
          "K1407",
          "K1408",
          "K1409",
          "K1410",
          "K1411",
          "K1412",
          "K1413",
          "K1414",
          "K1415",
          "K1416",
          "K1417",
          "K1418",
          "K1419",
          "K1420",
          "K1421",
          "K1422",
          "K1423",
          "K1424",
          "K1425",
          "K1426",
          "K1427",
          "K1428",
          "K1429",
          "K1430",
          "K1431",
          "K1432",
          "K1433",
          "K1434",
          "K1435",
          "K1436",
          "K1437",
          "K1438",
          "K1439",
          "K1440",
          "K1441",
          "K1442",
          "K1443",
          "K1444",
          "K1445",
          "K1446",
          "K1447",
          "K1448",
          "K1449",
          "K1450",
          "K1451",
          "K1452",
          "K1453",
          "K1454",
          "K1455",
          "K1456",
          "K1457",
          "K1458",
          "K1459",
          "K1460",
          "K1461",
          "K1462",
          "K1463",
          "K1464",
          "K1465",
          "K1466",
          "K1467",
          "K1468",
          "K1469",
          "K1470",
          "K1471",
          "K1472",
          "K1473",
          "K1474",
          "K1475",
          "K1476",
          "K1477",
          "K1478",
          "K1479",
          "K1480",
          "K1481",
          "K1482",
          "K1483",
          "K1484",
          "K1485",
          "K1486",
          "K1487",
          "K1488",
          "K1489",
          "K1490",
          "K1491",
          "K1492",
          "K1493",
          "K1494",
          "K1495",
          "K1496",
          "K1497",
          "K1498",
          "K1499",
          "K1500"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 10,
      "title": "Blok I/O ve VFS iskeleti",
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır.",
      "exit": "Rust kullanıcı araçları VFS üzerinden iki farklı mountta read stat list open close yapar; kaynak disk değişmez.",
      "dependencies": [
        9
      ],
      "first": 1501,
      "last": 1600,
      "href": "/isletim-sistemi-faz-10",
      "modules": [
        {
          "id": "block_io",
          "title": "Genel blok istek API",
          "layer": "kernel",
          "first": 1501,
          "last": 1520,
          "features": [
            {
              "id": "block_io.geometry",
              "title": "Sektör ve kapasite sözleşmesi",
              "first": 1501,
              "last": 1505
            },
            {
              "id": "block_io.requests",
              "title": "Sahipli blok istek nesnesi",
              "first": 1506,
              "last": 1510
            },
            {
              "id": "block_io.timeouts",
              "title": "Blok timeout ve iptal",
              "first": 1511,
              "last": 1515
            },
            {
              "id": "block_io.errors",
              "title": "Kısa I/O ve EIO ayrımı",
              "first": 1516,
              "last": 1520
            }
          ]
        },
        {
          "id": "partitions",
          "title": "Disk bölüm sınırları",
          "layer": "kernel",
          "first": 1521,
          "last": 1540,
          "features": [
            {
              "id": "partitions.mbr",
              "title": "Sınırlı MBR parser",
              "first": 1521,
              "last": 1525
            },
            {
              "id": "partitions.gpt",
              "title": "GPT başlık ve tablo doğrulama",
              "first": 1526,
              "last": 1530
            },
            {
              "id": "partitions.view",
              "title": "Partition blok görünümü",
              "first": 1531,
              "last": 1535
            },
            {
              "id": "partitions.recovery",
              "title": "Salt-okunur bölüm seçim politikası",
              "first": 1536,
              "last": 1540
            }
          ]
        },
        {
          "id": "vfs_paths",
          "title": "VFS yol ve namespace",
          "layer": "kernel",
          "first": 1541,
          "last": 1560,
          "features": [
            {
              "id": "vfs_paths.components",
              "title": "Yol bileşeni sınırları",
              "first": 1541,
              "last": 1545
            },
            {
              "id": "vfs_paths.mount_cross",
              "title": "Mount geçişi ve kök sınırı",
              "first": 1546,
              "last": 1550
            },
            {
              "id": "vfs_paths.lookup",
              "title": "Dentry inode lookup ömrü",
              "first": 1551,
              "last": 1555
            },
            {
              "id": "vfs_paths.symlinks",
              "title": "Sınırlı symlink çözümleme",
              "first": 1556,
              "last": 1560
            }
          ]
        },
        {
          "id": "vfs_files",
          "title": "Dosya nesnesi ve FD",
          "layer": "kernel",
          "first": 1561,
          "last": 1580,
          "features": [
            {
              "id": "vfs_files.open",
              "title": "Open mode ve erişim hakkı",
              "first": 1561,
              "last": 1565
            },
            {
              "id": "vfs_files.offsets",
              "title": "Dosya ofseti ve seek",
              "first": 1566,
              "last": 1570
            },
            {
              "id": "vfs_files.stat",
              "title": "Stat ve dizin metadata",
              "first": 1571,
              "last": 1575
            },
            {
              "id": "vfs_files.duplicates",
              "title": "Duplicate FD ve close ilişkisi",
              "first": 1576,
              "last": 1580
            }
          ]
        },
        {
          "id": "mount_cache",
          "title": "Mount ve bounded blok cache",
          "layer": "kernel",
          "first": 1581,
          "last": 1600,
          "features": [
            {
              "id": "mount_cache.filesystem_trait",
              "title": "Dosya sistemi trait sözleşmesi",
              "first": 1581,
              "last": 1585
            },
            {
              "id": "mount_cache.ramfs",
              "title": "Geçici kullanıcı dosya sistemi",
              "first": 1586,
              "last": 1590
            },
            {
              "id": "mount_cache.read_cache",
              "title": "RO cache anahtar ve tahliye",
              "first": 1591,
              "last": 1595
            },
            {
              "id": "mount_cache.unmount",
              "title": "Mount sökme ve busy ret",
              "first": 1596,
              "last": 1600
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1501",
          "K1502",
          "K1503",
          "K1504",
          "K1505",
          "K1506",
          "K1507",
          "K1508",
          "K1509",
          "K1510",
          "K1511",
          "K1512",
          "K1513",
          "K1514",
          "K1515",
          "K1516",
          "K1517",
          "K1518",
          "K1519",
          "K1520",
          "K1521",
          "K1522",
          "K1523",
          "K1524",
          "K1525",
          "K1526",
          "K1527",
          "K1528",
          "K1529",
          "K1530",
          "K1531",
          "K1532",
          "K1533",
          "K1534",
          "K1535",
          "K1536",
          "K1537",
          "K1538",
          "K1539",
          "K1540",
          "K1541",
          "K1542",
          "K1543",
          "K1544",
          "K1545",
          "K1546",
          "K1547",
          "K1548",
          "K1549",
          "K1550",
          "K1551",
          "K1552",
          "K1553",
          "K1554",
          "K1555",
          "K1556",
          "K1557",
          "K1558",
          "K1559",
          "K1560",
          "K1561",
          "K1562",
          "K1563",
          "K1564",
          "K1565",
          "K1566",
          "K1567",
          "K1568",
          "K1569",
          "K1570",
          "K1571",
          "K1572",
          "K1573",
          "K1574",
          "K1575",
          "K1576",
          "K1577",
          "K1578",
          "K1579",
          "K1580",
          "K1581",
          "K1582",
          "K1583",
          "K1584",
          "K1585",
          "K1586",
          "K1587",
          "K1588",
          "K1589",
          "K1590",
          "K1591",
          "K1592",
          "K1593",
          "K1594",
          "K1595",
          "K1596",
          "K1597",
          "K1598",
          "K1599",
          "K1600"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 11,
      "title": "TurkFS dosya yaşamı ve toparlanma",
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur.",
      "exit": "Dinamik dosya işlemleri geçici disklerde crash replay ve fsck ile ölçülür; production-write kendiliğinden açılmaz.",
      "dependencies": [
        10
      ],
      "first": 1601,
      "last": 1700,
      "href": "/isletim-sistemi-faz-11",
      "modules": [
        {
          "id": "turkfs_reader",
          "title": "Genel TurkFS RO mount",
          "layer": "kernel",
          "first": 1601,
          "last": 1620,
          "features": [
            {
              "id": "turkfs_reader.superblock",
              "title": "Sürümlü süperblok sözleşmesi",
              "first": 1601,
              "last": 1605
            },
            {
              "id": "turkfs_reader.inodes",
              "title": "Inode tablo bütünlüğü",
              "first": 1606,
              "last": 1610
            },
            {
              "id": "turkfs_reader.extents",
              "title": "Çok extent dosya okuma",
              "first": 1611,
              "last": 1615
            },
            {
              "id": "turkfs_reader.directories",
              "title": "Genel dizin dolaşımı",
              "first": 1616,
              "last": 1620
            }
          ]
        },
        {
          "id": "turkfs_allocation",
          "title": "Blok ve inode tahsisi",
          "layer": "kernel",
          "first": 1621,
          "last": 1640,
          "features": [
            {
              "id": "turkfs_allocation.bitmap",
              "title": "Bitmap sahiplik ve rezervasyon",
              "first": 1621,
              "last": 1625
            },
            {
              "id": "turkfs_allocation.extent_growth",
              "title": "Dosya extent büyütme",
              "first": 1626,
              "last": 1630
            },
            {
              "id": "turkfs_allocation.inode_alloc",
              "title": "Inode yuvası tahsisi",
              "first": 1631,
              "last": 1635
            },
            {
              "id": "turkfs_allocation.truncate",
              "title": "Truncate ve blok emekliliği",
              "first": 1636,
              "last": 1640
            }
          ]
        },
        {
          "id": "turkfs_namespace",
          "title": "Geçici diskte ad işlemleri",
          "layer": "kernel",
          "first": 1641,
          "last": 1660,
          "features": [
            {
              "id": "turkfs_namespace.create",
              "title": "Create ve mkdir işlemi",
              "first": 1641,
              "last": 1645
            },
            {
              "id": "turkfs_namespace.rename",
              "title": "Atomik aynı mount rename",
              "first": 1646,
              "last": 1650
            },
            {
              "id": "turkfs_namespace.unlink",
              "title": "Unlink açık dosya ömrü",
              "first": 1651,
              "last": 1655
            },
            {
              "id": "turkfs_namespace.links",
              "title": "Link sayısı ve dizin politikası",
              "first": 1656,
              "last": 1660
            }
          ]
        },
        {
          "id": "turkfs_journal",
          "title": "Genel transaction journal",
          "layer": "kernel",
          "first": 1661,
          "last": 1680,
          "features": [
            {
              "id": "turkfs_journal.format",
              "title": "Transaction başlık ve kayıt biçimi",
              "first": 1661,
              "last": 1665
            },
            {
              "id": "turkfs_journal.ordering",
              "title": "Veri journal commit sırası",
              "first": 1666,
              "last": 1670
            },
            {
              "id": "turkfs_journal.reservation",
              "title": "Journal alan rezervasyonu",
              "first": 1671,
              "last": 1675
            },
            {
              "id": "turkfs_journal.checkpoint",
              "title": "Checkpoint ve journal geri dönüşümü",
              "first": 1676,
              "last": 1680
            }
          ]
        },
        {
          "id": "turkfs_recovery",
          "title": "Replay ve RO fsck",
          "layer": "kernel",
          "first": 1681,
          "last": 1700,
          "features": [
            {
              "id": "turkfs_recovery.replay",
              "title": "İdempotent çok kayıt replay",
              "first": 1681,
              "last": 1685
            },
            {
              "id": "turkfs_recovery.second_cut",
              "title": "Replay sırasında ikinci kesinti",
              "first": 1686,
              "last": 1690
            },
            {
              "id": "turkfs_recovery.orphans",
              "title": "Sahipsiz blok fsck kararı",
              "first": 1691,
              "last": 1695
            },
            {
              "id": "turkfs_recovery.write_gate",
              "title": "Üretim yazma güvenlik kapısı",
              "first": 1696,
              "last": 1700
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1601",
          "K1602",
          "K1603",
          "K1604",
          "K1605",
          "K1606",
          "K1607",
          "K1608",
          "K1609",
          "K1610",
          "K1611",
          "K1612",
          "K1613",
          "K1614",
          "K1615",
          "K1616",
          "K1617",
          "K1618",
          "K1619",
          "K1620",
          "K1621",
          "K1622",
          "K1623",
          "K1624",
          "K1625",
          "K1626",
          "K1627",
          "K1628",
          "K1629",
          "K1630",
          "K1631",
          "K1632",
          "K1633",
          "K1634",
          "K1635",
          "K1636",
          "K1637",
          "K1638",
          "K1639",
          "K1640",
          "K1641",
          "K1642",
          "K1643",
          "K1644",
          "K1645",
          "K1646",
          "K1647",
          "K1648",
          "K1649",
          "K1650",
          "K1651",
          "K1652",
          "K1653",
          "K1654",
          "K1655",
          "K1656",
          "K1657",
          "K1658",
          "K1659",
          "K1660",
          "K1661",
          "K1662",
          "K1663",
          "K1664",
          "K1665",
          "K1666",
          "K1667",
          "K1668",
          "K1669",
          "K1670",
          "K1671",
          "K1672",
          "K1673",
          "K1674",
          "K1675",
          "K1676",
          "K1677",
          "K1678",
          "K1679",
          "K1680",
          "K1681",
          "K1682",
          "K1683",
          "K1684",
          "K1685",
          "K1686",
          "K1687",
          "K1688",
          "K1689",
          "K1690",
          "K1691",
          "K1692",
          "K1693",
          "K1694",
          "K1695",
          "K1696",
          "K1697",
          "K1698",
          "K1699",
          "K1700"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 12,
      "title": "Genel ELF exec ve kullanıcı belleği",
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır.",
      "exit": "Aynı kabuk diskten çok segmentli Rust ELF yükler; exec hatasında eski süreç veya tüm edinimler güvenle korunur.",
      "dependencies": [
        11
      ],
      "first": 1701,
      "last": 1800,
      "href": "/isletim-sistemi-faz-12",
      "modules": [
        {
          "id": "elf_loader",
          "title": "Çok segmentli ELF loader",
          "layer": "kernel",
          "first": 1701,
          "last": 1720,
          "features": [
            {
              "id": "elf_loader.headers",
              "title": "ELF program header aralığı",
              "first": 1701,
              "last": 1705
            },
            {
              "id": "elf_loader.segments",
              "title": "ELF RX RO RW segmentleri",
              "first": 1706,
              "last": 1710
            },
            {
              "id": "elf_loader.bss",
              "title": "BSS ve kısmi sayfa sıfırlama",
              "first": 1711,
              "last": 1715
            },
            {
              "id": "elf_loader.entry",
              "title": "ELF entry doğrulama",
              "first": 1716,
              "last": 1720
            }
          ]
        },
        {
          "id": "user_heap",
          "title": "Kullanıcı heap ve stack bölgeleri",
          "layer": "kernel",
          "first": 1721,
          "last": 1740,
          "features": [
            {
              "id": "user_heap.heap_region",
              "title": "Süreç heap bölgesi",
              "first": 1721,
              "last": 1725
            },
            {
              "id": "user_heap.allocation",
              "title": "Kullanıcı nesne API",
              "first": 1726,
              "last": 1730
            },
            {
              "id": "user_heap.stack_limits",
              "title": "Thread başına kullanıcı stack",
              "first": 1731,
              "last": 1735
            },
            {
              "id": "user_heap.reclaim",
              "title": "Kullanıcı heap geri kazanımı",
              "first": 1736,
              "last": 1740
            }
          ]
        },
        {
          "id": "user_mappings",
          "title": "Anonim ve dosya mapleri",
          "layer": "kernel",
          "first": 1741,
          "last": 1760,
          "features": [
            {
              "id": "user_mappings.anonymous",
              "title": "Anonim map yer seçimi",
              "first": 1741,
              "last": 1745
            },
            {
              "id": "user_mappings.file_ro",
              "title": "Salt-okunur file mapping",
              "first": 1746,
              "last": 1750
            },
            {
              "id": "user_mappings.private",
              "title": "Özel dosya map COW",
              "first": 1751,
              "last": 1755
            },
            {
              "id": "user_mappings.unmap_split",
              "title": "Parçalı unmap ve mapping bölme",
              "first": 1756,
              "last": 1760
            }
          ]
        },
        {
          "id": "exec",
          "title": "Spawn exec ve argüman güvenliği",
          "layer": "kernel",
          "first": 1761,
          "last": 1780,
          "features": [
            {
              "id": "exec.path_exec",
              "title": "VFSden imaj açma",
              "first": 1761,
              "last": 1765
            },
            {
              "id": "exec.replace",
              "title": "Exec atomik adres alanı değişimi",
              "first": 1766,
              "last": 1770
            },
            {
              "id": "exec.environment",
              "title": "Argv env toplam sınırı",
              "first": 1771,
              "last": 1775
            },
            {
              "id": "exec.close_exec",
              "title": "Exec handle miras politikası",
              "first": 1776,
              "last": 1780
            }
          ]
        },
        {
          "id": "program_format",
          "title": "Static PIE ve program manifesti",
          "layer": "userspace",
          "first": 1781,
          "last": 1800,
          "features": [
            {
              "id": "program_format.static_link",
              "title": "Native Rust static link",
              "first": 1781,
              "last": 1785
            },
            {
              "id": "program_format.relocations",
              "title": "Sınırlı static PIE reloc",
              "first": 1786,
              "last": 1790
            },
            {
              "id": "program_format.manifest",
              "title": "Program ABI hak manifesti",
              "first": 1791,
              "last": 1795
            },
            {
              "id": "program_format.program_suite",
              "title": "Native program kabul korpusu",
              "first": 1796,
              "last": 1800
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1701",
          "K1702",
          "K1703",
          "K1704",
          "K1705",
          "K1706",
          "K1707",
          "K1708",
          "K1709",
          "K1710",
          "K1711",
          "K1712",
          "K1713",
          "K1714",
          "K1715",
          "K1716",
          "K1717",
          "K1718",
          "K1719",
          "K1720",
          "K1721",
          "K1722",
          "K1723",
          "K1724",
          "K1725",
          "K1726",
          "K1727",
          "K1728",
          "K1729",
          "K1730",
          "K1731",
          "K1732",
          "K1733",
          "K1734",
          "K1735",
          "K1736",
          "K1737",
          "K1738",
          "K1739",
          "K1740",
          "K1741",
          "K1742",
          "K1743",
          "K1744",
          "K1745",
          "K1746",
          "K1747",
          "K1748",
          "K1749",
          "K1750",
          "K1751",
          "K1752",
          "K1753",
          "K1754",
          "K1755",
          "K1756",
          "K1757",
          "K1758",
          "K1759",
          "K1760",
          "K1761",
          "K1762",
          "K1763",
          "K1764",
          "K1765",
          "K1766",
          "K1767",
          "K1768",
          "K1769",
          "K1770",
          "K1771",
          "K1772",
          "K1773",
          "K1774",
          "K1775",
          "K1776",
          "K1777",
          "K1778",
          "K1779",
          "K1780",
          "K1781",
          "K1782",
          "K1783",
          "K1784",
          "K1785",
          "K1786",
          "K1787",
          "K1788",
          "K1789",
          "K1790",
          "K1791",
          "K1792",
          "K1793",
          "K1794",
          "K1795",
          "K1796",
          "K1797",
          "K1798",
          "K1799",
          "K1800"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 13,
      "title": "Ağ altyapısı ve native soketler",
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez.",
      "exit": "İki izole konuk Rust soket programlarıyla UDP ve sınırlı TCP alışverişi yapar; hatalı trafik kernel belleğini bozmaz.",
      "dependencies": [
        12
      ],
      "first": 1801,
      "last": 1900,
      "href": "/isletim-sistemi-faz-13",
      "modules": [
        {
          "id": "net_driver",
          "title": "Ürün virtio net sürücüsü",
          "layer": "kernel",
          "first": 1801,
          "last": 1820,
          "features": [
            {
              "id": "net_driver.rx_pool",
              "title": "Sahipli RX tampon havuzu",
              "first": 1801,
              "last": 1805
            },
            {
              "id": "net_driver.tx_queue",
              "title": "TX ömür ve kısa tamamlama",
              "first": 1806,
              "last": 1810
            },
            {
              "id": "net_driver.offloads",
              "title": "Açık no-offload başlangıç",
              "first": 1811,
              "last": 1815
            },
            {
              "id": "net_driver.link_reset",
              "title": "Link kesintisi ve queue reset",
              "first": 1816,
              "last": 1820
            }
          ]
        },
        {
          "id": "ethernet_arp",
          "title": "Ethernet adres ve ARP",
          "layer": "kernel",
          "first": 1821,
          "last": 1840,
          "features": [
            {
              "id": "ethernet_arp.frame",
              "title": "Ethernet çerçeve sınırı",
              "first": 1821,
              "last": 1825
            },
            {
              "id": "ethernet_arp.arp_table",
              "title": "Sınırlı ARP cache",
              "first": 1826,
              "last": 1830
            },
            {
              "id": "ethernet_arp.arp_query",
              "title": "ARP sorgu bekleme",
              "first": 1831,
              "last": 1835
            },
            {
              "id": "ethernet_arp.arp_validation",
              "title": "ARP yanıt doğrulama",
              "first": 1836,
              "last": 1840
            }
          ]
        },
        {
          "id": "ipv4",
          "title": "IPv4 ve ICMP hizmeti",
          "layer": "kernel",
          "first": 1841,
          "last": 1860,
          "features": [
            {
              "id": "ipv4.packet",
              "title": "IPv4 uzunluk checksum",
              "first": 1841,
              "last": 1845
            },
            {
              "id": "ipv4.routing",
              "title": "Sınırlı route tablosu",
              "first": 1846,
              "last": 1850
            },
            {
              "id": "ipv4.fragments",
              "title": "Fragment sınırlama politikası",
              "first": 1851,
              "last": 1855
            },
            {
              "id": "ipv4.icmp",
              "title": "ICMP echo ve hata oranı",
              "first": 1856,
              "last": 1860
            }
          ]
        },
        {
          "id": "udp",
          "title": "UDP ve socket API",
          "layer": "kernel",
          "first": 1861,
          "last": 1880,
          "features": [
            {
              "id": "udp.binding",
              "title": "Socket bind hak ve port",
              "first": 1861,
              "last": 1865
            },
            {
              "id": "udp.datagrams",
              "title": "UDP datagram sınırları",
              "first": 1866,
              "last": 1870
            },
            {
              "id": "udp.buffering",
              "title": "Socket RX kuyruk bütçesi",
              "first": 1871,
              "last": 1875
            },
            {
              "id": "udp.close_wait",
              "title": "Socket wait timeout close",
              "first": 1876,
              "last": 1880
            }
          ]
        },
        {
          "id": "tcp",
          "title": "Sınırlı TCP durum makinesi",
          "layer": "kernel",
          "first": 1881,
          "last": 1900,
          "features": [
            {
              "id": "tcp.handshake",
              "title": "SYN SYNACK ACK geçişleri",
              "first": 1881,
              "last": 1885
            },
            {
              "id": "tcp.stream",
              "title": "TCP receive sıra ve pencere",
              "first": 1886,
              "last": 1890
            },
            {
              "id": "tcp.retransmit",
              "title": "Bounded retransmission timer",
              "first": 1891,
              "last": 1895
            },
            {
              "id": "tcp.closing",
              "title": "FIN RST TIMEWAIT ömrü",
              "first": 1896,
              "last": 1900
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1801",
          "K1802",
          "K1803",
          "K1804",
          "K1805",
          "K1806",
          "K1807",
          "K1808",
          "K1809",
          "K1810",
          "K1811",
          "K1812",
          "K1813",
          "K1814",
          "K1815",
          "K1816",
          "K1817",
          "K1818",
          "K1819",
          "K1820",
          "K1821",
          "K1822",
          "K1823",
          "K1824",
          "K1825",
          "K1826",
          "K1827",
          "K1828",
          "K1829",
          "K1830",
          "K1831",
          "K1832",
          "K1833",
          "K1834",
          "K1835",
          "K1836",
          "K1837",
          "K1838",
          "K1839",
          "K1840",
          "K1841",
          "K1842",
          "K1843",
          "K1844",
          "K1845",
          "K1846",
          "K1847",
          "K1848",
          "K1849",
          "K1850",
          "K1851",
          "K1852",
          "K1853",
          "K1854",
          "K1855",
          "K1856",
          "K1857",
          "K1858",
          "K1859",
          "K1860",
          "K1861",
          "K1862",
          "K1863",
          "K1864",
          "K1865",
          "K1866",
          "K1867",
          "K1868",
          "K1869",
          "K1870",
          "K1871",
          "K1872",
          "K1873",
          "K1874",
          "K1875",
          "K1876",
          "K1877",
          "K1878",
          "K1879",
          "K1880",
          "K1881",
          "K1882",
          "K1883",
          "K1884",
          "K1885",
          "K1886",
          "K1887",
          "K1888",
          "K1889",
          "K1890",
          "K1891",
          "K1892",
          "K1893",
          "K1894",
          "K1895",
          "K1896",
          "K1897",
          "K1898",
          "K1899",
          "K1900"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 14,
      "title": "Güvenlik yetki ve güven kökü sınırları",
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez.",
      "exit": "Yetkisiz süreç aygıt yönetim sır ve başka principal verisine erişemez; açık kapılar experimental durumunu korur.",
      "dependencies": [
        13
      ],
      "first": 1901,
      "last": 2000,
      "href": "/isletim-sistemi-faz-14",
      "modules": [
        {
          "id": "entropy",
          "title": "Entropy ve rastgelelik hizmeti",
          "layer": "kernel",
          "first": 1901,
          "last": 1920,
          "features": [
            {
              "id": "entropy.source",
              "title": "Virtio RNG kaynak kalitesi",
              "first": 1901,
              "last": 1905
            },
            {
              "id": "entropy.limits",
              "title": "RNG istek ve bekleme sınırı",
              "first": 1906,
              "last": 1910
            },
            {
              "id": "entropy.provider",
              "title": "Kripto sağlayıcı sözleşmesi",
              "first": 1911,
              "last": 1915
            },
            {
              "id": "entropy.secrets",
              "title": "Anahtar buffer yaşamı",
              "first": 1916,
              "last": 1920
            }
          ]
        },
        {
          "id": "sandbox",
          "title": "Süreç capability sandbox",
          "layer": "kernel",
          "first": 1921,
          "last": 1940,
          "features": [
            {
              "id": "sandbox.rights_model",
              "title": "Capability hak bileşimi",
              "first": 1921,
              "last": 1925
            },
            {
              "id": "sandbox.namespaces",
              "title": "Süreç dosya hizmet kökü",
              "first": 1926,
              "last": 1930
            },
            {
              "id": "sandbox.device_access",
              "title": "Aygıt yönetim hakları",
              "first": 1931,
              "last": 1935
            },
            {
              "id": "sandbox.quotas",
              "title": "CPU bellek IPC bütçeleri",
              "first": 1936,
              "last": 1940
            }
          ]
        },
        {
          "id": "credentials",
          "title": "Principal ve süreç hakları",
          "layer": "kernel",
          "first": 1941,
          "last": 1960,
          "features": [
            {
              "id": "credentials.ids",
              "title": "Principal oluşturma ve nesil",
              "first": 1941,
              "last": 1945
            },
            {
              "id": "credentials.transitions",
              "title": "Kontrollü kimlik değişimi",
              "first": 1946,
              "last": 1950
            },
            {
              "id": "credentials.proc_view",
              "title": "İzinli süreç metadata görünümü",
              "first": 1951,
              "last": 1955
            },
            {
              "id": "credentials.session_cleanup",
              "title": "Oturum sonu yetki iptali",
              "first": 1956,
              "last": 1960
            }
          ]
        },
        {
          "id": "image_trust",
          "title": "İmaj ve güncelleme doğrulama",
          "layer": "userspace",
          "first": 1961,
          "last": 1980,
          "features": [
            {
              "id": "image_trust.manifest",
              "title": "İmzalı manifest sınırı",
              "first": 1961,
              "last": 1965
            },
            {
              "id": "image_trust.rollback",
              "title": "Sürüm geri alma politikası",
              "first": 1966,
              "last": 1970
            },
            {
              "id": "image_trust.rotation",
              "title": "Anahtar değişim ve iptal modeli",
              "first": 1971,
              "last": 1975
            },
            {
              "id": "image_trust.recovery_root",
              "title": "Kurtarma güven kökü ayrımı",
              "first": 1976,
              "last": 1980
            }
          ]
        },
        {
          "id": "security_audit",
          "title": "Sistem güvenlik kabulü",
          "layer": "kernel",
          "first": 1981,
          "last": 2000,
          "features": [
            {
              "id": "security_audit.threat_model",
              "title": "Uçtan uca tehdit matrisi",
              "first": 1981,
              "last": 1985
            },
            {
              "id": "security_audit.unsafe_inventory",
              "title": "Unsafe ve assembly envanteri",
              "first": 1986,
              "last": 1990
            },
            {
              "id": "security_audit.debug_policy",
              "title": "Debug ve release bilgi sınırı",
              "first": 1991,
              "last": 1995
            },
            {
              "id": "security_audit.independent_review",
              "title": "Bağımsız güvenlik incelemesi",
              "first": 1996,
              "last": 2000
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K1901",
          "K1902",
          "K1903",
          "K1904",
          "K1905",
          "K1906",
          "K1907",
          "K1908",
          "K1909",
          "K1910",
          "K1911",
          "K1912",
          "K1913",
          "K1914",
          "K1915",
          "K1916",
          "K1917",
          "K1918",
          "K1919",
          "K1920",
          "K1921",
          "K1922",
          "K1923",
          "K1924",
          "K1925",
          "K1926",
          "K1927",
          "K1928",
          "K1929",
          "K1930",
          "K1931",
          "K1932",
          "K1933",
          "K1934",
          "K1935",
          "K1936",
          "K1937",
          "K1938",
          "K1939",
          "K1940",
          "K1941",
          "K1942",
          "K1943",
          "K1944",
          "K1945",
          "K1946",
          "K1947",
          "K1948",
          "K1949",
          "K1950",
          "K1951",
          "K1952",
          "K1953",
          "K1954",
          "K1955",
          "K1956",
          "K1957",
          "K1958",
          "K1959",
          "K1960",
          "K1961",
          "K1962",
          "K1963",
          "K1964",
          "K1965",
          "K1966",
          "K1967",
          "K1968",
          "K1969",
          "K1970",
          "K1971",
          "K1972",
          "K1973",
          "K1974",
          "K1975",
          "K1976",
          "K1977",
          "K1978",
          "K1979",
          "K1980",
          "K1981",
          "K1982",
          "K1983",
          "K1984",
          "K1985",
          "K1986",
          "K1987",
          "K1988",
          "K1989",
          "K1990",
          "K1991",
          "K1992",
          "K1993",
          "K1994",
          "K1995",
          "K1996",
          "K1997",
          "K1998",
          "K1999",
          "K2000"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 15,
      "title": "SMP ve çok çekirdekli runtime",
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır.",
      "exit": "İki ve dört vCPU profilinde süreçler CPUlar arasında ilerler; mapping ve kaynak muhasebesi yarışlarda korunur.",
      "dependencies": [
        14
      ],
      "first": 2001,
      "last": 2100,
      "href": "/isletim-sistemi-faz-15",
      "modules": [
        {
          "id": "smp_boot",
          "title": "CPU topology ve PSCI",
          "layer": "arch",
          "first": 2001,
          "last": 2020,
          "features": [
            {
              "id": "smp_boot.topology",
              "title": "DTB CPU topology",
              "first": 2001,
              "last": 2005
            },
            {
              "id": "smp_boot.psci",
              "title": "PSCI CPUON çağrı sözleşmesi",
              "first": 2006,
              "last": 2010
            },
            {
              "id": "smp_boot.secondary",
              "title": "İkincil CPU giriş verisi",
              "first": 2011,
              "last": 2015
            },
            {
              "id": "smp_boot.barrier",
              "title": "SMP başlatma bariyeri",
              "first": 2016,
              "last": 2020
            }
          ]
        },
        {
          "id": "per_cpu",
          "title": "PerCPU yerel hizmetler",
          "layer": "kernel",
          "first": 2021,
          "last": 2040,
          "features": [
            {
              "id": "per_cpu.storage",
              "title": "PerCPU veri alanı",
              "first": 2021,
              "last": 2025
            },
            {
              "id": "per_cpu.vectors",
              "title": "CPU başına vektör ve IRQ stack",
              "first": 2026,
              "last": 2030
            },
            {
              "id": "per_cpu.timer",
              "title": "CPU başına timer kaydı",
              "first": 2031,
              "last": 2035
            },
            {
              "id": "per_cpu.online",
              "title": "CPU online offline durumları",
              "first": 2036,
              "last": 2040
            }
          ]
        },
        {
          "id": "smp_scheduler",
          "title": "Çok CPU scheduler",
          "layer": "kernel",
          "first": 2041,
          "last": 2060,
          "features": [
            {
              "id": "smp_scheduler.queues",
              "title": "CPU başına runqueue",
              "first": 2041,
              "last": 2045
            },
            {
              "id": "smp_scheduler.ipi_wake",
              "title": "SGI ile uzak wake",
              "first": 2046,
              "last": 2050
            },
            {
              "id": "smp_scheduler.migration",
              "title": "Thread güvenli CPU göçü",
              "first": 2051,
              "last": 2055
            },
            {
              "id": "smp_scheduler.affinity",
              "title": "CPU affinity ve yük dengeleme",
              "first": 2056,
              "last": 2060
            }
          ]
        },
        {
          "id": "smp_memory",
          "title": "SMP TLB ve bellek yarışları",
          "layer": "arch",
          "first": 2061,
          "last": 2080,
          "features": [
            {
              "id": "smp_memory.shootdown",
              "title": "Uzak CPU TLB shootdown",
              "first": 2061,
              "last": 2065
            },
            {
              "id": "smp_memory.asid_epoch",
              "title": "SMP ASID nesil bariyeri",
              "first": 2066,
              "last": 2070
            },
            {
              "id": "smp_memory.allocator",
              "title": "SMP frame allocator hizmeti",
              "first": 2071,
              "last": 2075
            },
            {
              "id": "smp_memory.publication",
              "title": "Acquire release yayın kanıtı",
              "first": 2076,
              "last": 2080
            }
          ]
        },
        {
          "id": "smp_acceptance",
          "title": "SMP stres ve ölçüm",
          "layer": "kernel",
          "first": 2081,
          "last": 2100,
          "features": [
            {
              "id": "smp_acceptance.fairness",
              "title": "Çok CPU ilerleme dağılımı",
              "first": 2081,
              "last": 2085
            },
            {
              "id": "smp_acceptance.lock_metrics",
              "title": "Kilit bekleme ve hold süresi",
              "first": 2086,
              "last": 2090
            },
            {
              "id": "smp_acceptance.cpu_failure",
              "title": "İkincil CPU yanıt vermeme",
              "first": 2091,
              "last": 2095
            },
            {
              "id": "smp_acceptance.workload",
              "title": "Birleşik SMP ürün yükü",
              "first": 2096,
              "last": 2100
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K2001",
          "K2002",
          "K2003",
          "K2004",
          "K2005",
          "K2006",
          "K2007",
          "K2008",
          "K2009",
          "K2010",
          "K2011",
          "K2012",
          "K2013",
          "K2014",
          "K2015",
          "K2016",
          "K2017",
          "K2018",
          "K2019",
          "K2020",
          "K2021",
          "K2022",
          "K2023",
          "K2024",
          "K2025",
          "K2026",
          "K2027",
          "K2028",
          "K2029",
          "K2030",
          "K2031",
          "K2032",
          "K2033",
          "K2034",
          "K2035",
          "K2036",
          "K2037",
          "K2038",
          "K2039",
          "K2040",
          "K2041",
          "K2042",
          "K2043",
          "K2044",
          "K2045",
          "K2046",
          "K2047",
          "K2048",
          "K2049",
          "K2050",
          "K2051",
          "K2052",
          "K2053",
          "K2054",
          "K2055",
          "K2056",
          "K2057",
          "K2058",
          "K2059",
          "K2060",
          "K2061",
          "K2062",
          "K2063",
          "K2064",
          "K2065",
          "K2066",
          "K2067",
          "K2068",
          "K2069",
          "K2070",
          "K2071",
          "K2072",
          "K2073",
          "K2074",
          "K2075",
          "K2076",
          "K2077",
          "K2078",
          "K2079",
          "K2080",
          "K2081",
          "K2082",
          "K2083",
          "K2084",
          "K2085",
          "K2086",
          "K2087",
          "K2088",
          "K2089",
          "K2090",
          "K2091",
          "K2092",
          "K2093",
          "K2094",
          "K2095",
          "K2096",
          "K2097",
          "K2098",
          "K2099",
          "K2100"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 16,
      "title": "Konuk yaşam döngüsü ve güncelleme",
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır.",
      "exit": "Konuk kendi hizmetlerini durdurur kaynakları drain eder ve ölçülen platform poweroff yoluna gider; host timeout zorla kayıp onayıyla ayrıdır.",
      "dependencies": [
        15
      ],
      "first": 2101,
      "last": 2200,
      "href": "/isletim-sistemi-faz-16",
      "modules": [
        {
          "id": "service_supervision",
          "title": "PID1 hizmet yaşamı",
          "layer": "userspace",
          "first": 2101,
          "last": 2120,
          "features": [
            {
              "id": "service_supervision.readiness",
              "title": "Hizmet ready protokolü",
              "first": 2101,
              "last": 2105
            },
            {
              "id": "service_supervision.health",
              "title": "Sınırlı health kontrolü",
              "first": 2106,
              "last": 2110
            },
            {
              "id": "service_supervision.dependency_stop",
              "title": "Bağımlılık tersine stop sırası",
              "first": 2111,
              "last": 2115
            },
            {
              "id": "service_supervision.crash_loop",
              "title": "Hizmet crash loop karantinası",
              "first": 2116,
              "last": 2120
            }
          ]
        },
        {
          "id": "guest_power",
          "title": "TurkOS reset ve poweroff",
          "layer": "arch",
          "first": 2121,
          "last": 2140,
          "features": [
            {
              "id": "guest_power.capability",
              "title": "Power yönetim yetkisi",
              "first": 2121,
              "last": 2125
            },
            {
              "id": "guest_power.psci_off",
              "title": "PSCI SYSTEMOFF yolu",
              "first": 2126,
              "last": 2130
            },
            {
              "id": "guest_power.psci_reset",
              "title": "PSCI SYSTEMRESET yolu",
              "first": 2131,
              "last": 2135
            },
            {
              "id": "guest_power.fallback",
              "title": "Desteksiz power yolu",
              "first": 2136,
              "last": 2140
            }
          ]
        },
        {
          "id": "shutdown_io",
          "title": "Kapanışta I/O tutarlılığı",
          "layer": "kernel",
          "first": 2141,
          "last": 2160,
          "features": [
            {
              "id": "shutdown_io.quiesce",
              "title": "Yeni yazı kabulünü durdurma",
              "first": 2141,
              "last": 2145
            },
            {
              "id": "shutdown_io.flush",
              "title": "Kapanış flush kabulü",
              "first": 2146,
              "last": 2150
            },
            {
              "id": "shutdown_io.leases",
              "title": "IRQ DMA thread drain",
              "first": 2151,
              "last": 2155
            },
            {
              "id": "shutdown_io.reopen",
              "title": "Yeni boot dosya hash kabulü",
              "first": 2156,
              "last": 2160
            }
          ]
        },
        {
          "id": "update_slots",
          "title": "RO imaj güncelleme prototipi",
          "layer": "userspace",
          "first": 2161,
          "last": 2180,
          "features": [
            {
              "id": "update_slots.slots",
              "title": "A B salt-okunur sürüm yuvası",
              "first": 2161,
              "last": 2165
            },
            {
              "id": "update_slots.verify",
              "title": "Yeni yuva imaj doğrulama",
              "first": 2166,
              "last": 2170
            },
            {
              "id": "update_slots.boot_choice",
              "title": "Sınırlı boot seçim kaydı",
              "first": 2171,
              "last": 2175
            },
            {
              "id": "update_slots.rollback",
              "title": "Başarısız sürüm geri dönüşü",
              "first": 2176,
              "last": 2180
            }
          ]
        },
        {
          "id": "recovery_mode",
          "title": "Kurtarma ve tanı oturumu",
          "layer": "userspace",
          "first": 2181,
          "last": 2200,
          "features": [
            {
              "id": "recovery_mode.entry",
              "title": "Kurtarma moduna yetkili giriş",
              "first": 2181,
              "last": 2185
            },
            {
              "id": "recovery_mode.readonly",
              "title": "Recovery salt-okunur mount",
              "first": 2186,
              "last": 2190
            },
            {
              "id": "recovery_mode.export",
              "title": "Hashli tanı paketi",
              "first": 2191,
              "last": 2195
            },
            {
              "id": "recovery_mode.exit",
              "title": "Kurtarmadan normal boot",
              "first": 2196,
              "last": 2200
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K2101",
          "K2102",
          "K2103",
          "K2104",
          "K2105",
          "K2106",
          "K2107",
          "K2108",
          "K2109",
          "K2110",
          "K2111",
          "K2112",
          "K2113",
          "K2114",
          "K2115",
          "K2116",
          "K2117",
          "K2118",
          "K2119",
          "K2120",
          "K2121",
          "K2122",
          "K2123",
          "K2124",
          "K2125",
          "K2126",
          "K2127",
          "K2128",
          "K2129",
          "K2130",
          "K2131",
          "K2132",
          "K2133",
          "K2134",
          "K2135",
          "K2136",
          "K2137",
          "K2138",
          "K2139",
          "K2140",
          "K2141",
          "K2142",
          "K2143",
          "K2144",
          "K2145",
          "K2146",
          "K2147",
          "K2148",
          "K2149",
          "K2150",
          "K2151",
          "K2152",
          "K2153",
          "K2154",
          "K2155",
          "K2156",
          "K2157",
          "K2158",
          "K2159",
          "K2160",
          "K2161",
          "K2162",
          "K2163",
          "K2164",
          "K2165",
          "K2166",
          "K2167",
          "K2168",
          "K2169",
          "K2170",
          "K2171",
          "K2172",
          "K2173",
          "K2174",
          "K2175",
          "K2176",
          "K2177",
          "K2178",
          "K2179",
          "K2180",
          "K2181",
          "K2182",
          "K2183",
          "K2184",
          "K2185",
          "K2186",
          "K2187",
          "K2188",
          "K2189",
          "K2190",
          "K2191",
          "K2192",
          "K2193",
          "K2194",
          "K2195",
          "K2196",
          "K2197",
          "K2198",
          "K2199",
          "K2200"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 17,
      "title": "Konuk grafik girdi ve erişilebilirlik",
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar.",
      "exit": "Konuk Rust terminali virtio GPU üzerinde kendi piksellerini çizer; klavye ve odak seri yoldan bağımsız ölçülür.",
      "dependencies": [
        16
      ],
      "first": 2201,
      "last": 2300,
      "href": "/isletim-sistemi-faz-17",
      "modules": [
        {
          "id": "virtio_gpu",
          "title": "Konuk virtio GPU sürücüsü",
          "layer": "kernel",
          "first": 2201,
          "last": 2220,
          "features": [
            {
              "id": "virtio_gpu.discovery",
              "title": "GPU feature ve display info",
              "first": 2201,
              "last": 2205
            },
            {
              "id": "virtio_gpu.resources",
              "title": "GPU 2D kaynak ve backing",
              "first": 2206,
              "last": 2210
            },
            {
              "id": "virtio_gpu.transfer",
              "title": "GPU transfer ve flush",
              "first": 2211,
              "last": 2215
            },
            {
              "id": "virtio_gpu.reset",
              "title": "GPU reset kaynak ömrü",
              "first": 2216,
              "last": 2220
            }
          ]
        },
        {
          "id": "raster",
          "title": "Rust piksel ve metin çizimi",
          "layer": "userspace",
          "first": 2221,
          "last": 2240,
          "features": [
            {
              "id": "raster.pixels",
              "title": "Pixel format ve stride",
              "first": 2221,
              "last": 2225
            },
            {
              "id": "raster.rectangles",
              "title": "Rect clipping ve damage",
              "first": 2226,
              "last": 2230
            },
            {
              "id": "raster.glyphs",
              "title": "Bitmap font ve UTF8 fallback",
              "first": 2231,
              "last": 2235
            },
            {
              "id": "raster.text_layout",
              "title": "Terminal satır ve scroll",
              "first": 2236,
              "last": 2240
            }
          ]
        },
        {
          "id": "virtio_input",
          "title": "Konuk klavye ve işaretçi",
          "layer": "kernel",
          "first": 2241,
          "last": 2260,
          "features": [
            {
              "id": "virtio_input.events",
              "title": "Virtio input olay parserı",
              "first": 2241,
              "last": 2245
            },
            {
              "id": "virtio_input.keyboard",
              "title": "Keymap modifier ve repeat",
              "first": 2246,
              "last": 2250
            },
            {
              "id": "virtio_input.pointer",
              "title": "Absolute pointer koordinatı",
              "first": 2251,
              "last": 2255
            },
            {
              "id": "virtio_input.focus",
              "title": "Input hedef yetkisi",
              "first": 2256,
              "last": 2260
            }
          ]
        },
        {
          "id": "compositor",
          "title": "Sınırlı pencere ve yüzey servisi",
          "layer": "userspace",
          "first": 2261,
          "last": 2280,
          "features": [
            {
              "id": "compositor.surface",
              "title": "Paylaşılan yüzey sözleşmesi",
              "first": 2261,
              "last": 2265
            },
            {
              "id": "compositor.composition",
              "title": "Z sırası ve alfa birleşimi",
              "first": 2266,
              "last": 2270
            },
            {
              "id": "compositor.session",
              "title": "Pencere oturum ve nesil",
              "first": 2271,
              "last": 2275
            },
            {
              "id": "compositor.limits",
              "title": "UI CPU ve yüzey sınırları",
              "first": 2276,
              "last": 2280
            }
          ]
        },
        {
          "id": "guest_terminal",
          "title": "Konuk terminal ve erişilebilirlik",
          "layer": "userspace",
          "first": 2281,
          "last": 2300,
          "features": [
            {
              "id": "guest_terminal.pty",
              "title": "Pseudo terminal byte akışı",
              "first": 2281,
              "last": 2285
            },
            {
              "id": "guest_terminal.terminal_protocol",
              "title": "Sınırlı ANSI terminal",
              "first": 2286,
              "last": 2290
            },
            {
              "id": "guest_terminal.semantics",
              "title": "Metin odak erişim ağacı",
              "first": 2291,
              "last": 2295
            },
            {
              "id": "guest_terminal.human_review",
              "title": "Gerçek kullanıcı ve okuyucu oturumu",
              "first": 2296,
              "last": 2300
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K2201",
          "K2202",
          "K2203",
          "K2204",
          "K2205",
          "K2206",
          "K2207",
          "K2208",
          "K2209",
          "K2210",
          "K2211",
          "K2212",
          "K2213",
          "K2214",
          "K2215",
          "K2216",
          "K2217",
          "K2218",
          "K2219",
          "K2220",
          "K2221",
          "K2222",
          "K2223",
          "K2224",
          "K2225",
          "K2226",
          "K2227",
          "K2228",
          "K2229",
          "K2230",
          "K2231",
          "K2232",
          "K2233",
          "K2234",
          "K2235",
          "K2236",
          "K2237",
          "K2238",
          "K2239",
          "K2240",
          "K2241",
          "K2242",
          "K2243",
          "K2244",
          "K2245",
          "K2246",
          "K2247",
          "K2248",
          "K2249",
          "K2250",
          "K2251",
          "K2252",
          "K2253",
          "K2254",
          "K2255",
          "K2256",
          "K2257",
          "K2258",
          "K2259",
          "K2260",
          "K2261",
          "K2262",
          "K2263",
          "K2264",
          "K2265",
          "K2266",
          "K2267",
          "K2268",
          "K2269",
          "K2270",
          "K2271",
          "K2272",
          "K2273",
          "K2274",
          "K2275",
          "K2276",
          "K2277",
          "K2278",
          "K2279",
          "K2280",
          "K2281",
          "K2282",
          "K2283",
          "K2284",
          "K2285",
          "K2286",
          "K2287",
          "K2288",
          "K2289",
          "K2290",
          "K2291",
          "K2292",
          "K2293",
          "K2294",
          "K2295",
          "K2296",
          "K2297",
          "K2298",
          "K2299",
          "K2300"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 18,
      "title": "Rust uygulamalar ve sistem servisleri",
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir.",
      "exit": "Kabuk dosya araçları monitor editör ve ağ aracı aynı konuk imajında bağımsız süreçler olarak çalışır.",
      "dependencies": [
        17
      ],
      "first": 2301,
      "last": 2400,
      "href": "/isletim-sistemi-faz-18",
      "modules": [
        {
          "id": "file_tools",
          "title": "Dosya yönetim araçları",
          "layer": "userspace",
          "first": 2301,
          "last": 2320,
          "features": [
            {
              "id": "file_tools.copy",
              "title": "Cp benzeri bounded kopya",
              "first": 2301,
              "last": 2305
            },
            {
              "id": "file_tools.move",
              "title": "Mv rename veya kopya ayrımı",
              "first": 2306,
              "last": 2310
            },
            {
              "id": "file_tools.remove",
              "title": "Rm yetki ve hedef doğrulama",
              "first": 2311,
              "last": 2315
            },
            {
              "id": "file_tools.hash_tool",
              "title": "Dosya SHA256 aracı",
              "first": 2316,
              "last": 2320
            }
          ]
        },
        {
          "id": "editor",
          "title": "Küçük Rust metin editörü",
          "layer": "userspace",
          "first": 2321,
          "last": 2340,
          "features": [
            {
              "id": "editor.buffer",
              "title": "Editör UTF8 metin buffer",
              "first": 2321,
              "last": 2325
            },
            {
              "id": "editor.load_save",
              "title": "RO yükleme geçici kaydetme",
              "first": 2326,
              "last": 2330
            },
            {
              "id": "editor.undo",
              "title": "Bounded undo redo geçmişi",
              "first": 2331,
              "last": 2335
            },
            {
              "id": "editor.session",
              "title": "Editör terminal UI oturumu",
              "first": 2336,
              "last": 2340
            }
          ]
        },
        {
          "id": "system_monitor",
          "title": "Sistem gözlem uygulaması",
          "layer": "userspace",
          "first": 2341,
          "last": 2360,
          "features": [
            {
              "id": "system_monitor.processes",
              "title": "PID thread ve durum görünümü",
              "first": 2341,
              "last": 2345
            },
            {
              "id": "system_monitor.memory",
              "title": "RAM heap DMA sayaçları",
              "first": 2346,
              "last": 2350
            },
            {
              "id": "system_monitor.cpu",
              "title": "CPU süre ve scheduler yükü",
              "first": 2351,
              "last": 2355
            },
            {
              "id": "system_monitor.logs",
              "title": "Yetkili tanı log görünümü",
              "first": 2356,
              "last": 2360
            }
          ]
        },
        {
          "id": "network_tools",
          "title": "Native ağ test araçları",
          "layer": "userspace",
          "first": 2361,
          "last": 2380,
          "features": [
            {
              "id": "network_tools.ping",
              "title": "Sınırlı ICMP test aracı",
              "first": 2361,
              "last": 2365
            },
            {
              "id": "network_tools.udp_tool",
              "title": "UDP gönder al aracı",
              "first": 2366,
              "last": 2370
            },
            {
              "id": "network_tools.tcp_tool",
              "title": "Küçük TCP akış aracı",
              "first": 2371,
              "last": 2375
            },
            {
              "id": "network_tools.diagnostic",
              "title": "Route ARP socket görünümü",
              "first": 2376,
              "last": 2380
            }
          ]
        },
        {
          "id": "configuration",
          "title": "Yapılandırma ve uygulama paketi",
          "layer": "userspace",
          "first": 2381,
          "last": 2400,
          "features": [
            {
              "id": "configuration.schema",
              "title": "Sürümlü servis yapılandırması",
              "first": 2381,
              "last": 2385
            },
            {
              "id": "configuration.persistence",
              "title": "Config atomik kalıcılık",
              "first": 2386,
              "last": 2390
            },
            {
              "id": "configuration.package",
              "title": "Native uygulama paket indeksi",
              "first": 2391,
              "last": 2395
            },
            {
              "id": "configuration.uninstall",
              "title": "Uygulama kaldırma ömrü",
              "first": 2396,
              "last": 2400
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K2301",
          "K2302",
          "K2303",
          "K2304",
          "K2305",
          "K2306",
          "K2307",
          "K2308",
          "K2309",
          "K2310",
          "K2311",
          "K2312",
          "K2313",
          "K2314",
          "K2315",
          "K2316",
          "K2317",
          "K2318",
          "K2319",
          "K2320",
          "K2321",
          "K2322",
          "K2323",
          "K2324",
          "K2325",
          "K2326",
          "K2327",
          "K2328",
          "K2329",
          "K2330",
          "K2331",
          "K2332",
          "K2333",
          "K2334",
          "K2335",
          "K2336",
          "K2337",
          "K2338",
          "K2339",
          "K2340",
          "K2341",
          "K2342",
          "K2343",
          "K2344",
          "K2345",
          "K2346",
          "K2347",
          "K2348",
          "K2349",
          "K2350",
          "K2351",
          "K2352",
          "K2353",
          "K2354",
          "K2355",
          "K2356",
          "K2357",
          "K2358",
          "K2359",
          "K2360",
          "K2361",
          "K2362",
          "K2363",
          "K2364",
          "K2365",
          "K2366",
          "K2367",
          "K2368",
          "K2369",
          "K2370",
          "K2371",
          "K2372",
          "K2373",
          "K2374",
          "K2375",
          "K2376",
          "K2377",
          "K2378",
          "K2379",
          "K2380",
          "K2381",
          "K2382",
          "K2383",
          "K2384",
          "K2385",
          "K2386",
          "K2387",
          "K2388",
          "K2389",
          "K2390",
          "K2391",
          "K2392",
          "K2393",
          "K2394",
          "K2395",
          "K2396",
          "K2397",
          "K2398",
          "K2399",
          "K2400"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    },
    {
      "id": 19,
      "title": "Sistem sınamaları ve deneysel sürüm",
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur.",
      "exit": "Bütün ürün kabul kapıları delilleriyle değerlendirilir; geçmeyen güvenlik erişim KVM veya dayanıklılık varsa sürüm experimental kalır.",
      "dependencies": [
        18
      ],
      "first": 2401,
      "last": 2500,
      "href": "/isletim-sistemi-faz-19",
      "modules": [
        {
          "id": "acceptance_harness",
          "title": "OS kabul test altyapısı",
          "layer": "harness",
          "first": 2401,
          "last": 2420,
          "features": [
            {
              "id": "acceptance_harness.cases",
              "title": "Tekil OS test kimliği",
              "first": 2401,
              "last": 2405
            },
            {
              "id": "acceptance_harness.zero_tests",
              "title": "Sıfır test başarı reddi",
              "first": 2406,
              "last": 2410
            },
            {
              "id": "acceptance_harness.guest_oracle",
              "title": "Konuk oracle ve sıra",
              "first": 2411,
              "last": 2415
            },
            {
              "id": "acceptance_harness.failures",
              "title": "Başarısız koşu arşivi",
              "first": 2416,
              "last": 2420
            }
          ]
        },
        {
          "id": "system_fuzz",
          "title": "Parser ve protokol fuzz korpusu",
          "layer": "harness",
          "first": 2421,
          "last": 2440,
          "features": [
            {
              "id": "system_fuzz.inputs",
              "title": "Sınır parser korpusları",
              "first": 2421,
              "last": 2425
            },
            {
              "id": "system_fuzz.campaign",
              "title": "Sürümlü fuzz kampanyası",
              "first": 2426,
              "last": 2430
            },
            {
              "id": "system_fuzz.minimize",
              "title": "Bulguyu küçültme ve regresyon",
              "first": 2431,
              "last": 2435
            },
            {
              "id": "system_fuzz.replay",
              "title": "Kalıcı corpus tekrar kapısı",
              "first": 2436,
              "last": 2440
            }
          ]
        },
        {
          "id": "fault_matrix",
          "title": "Birleşik hata ve uzun koşu",
          "layer": "harness",
          "first": 2441,
          "last": 2460,
          "features": [
            {
              "id": "fault_matrix.resources",
              "title": "ENOSPC ve quota matrisi",
              "first": 2441,
              "last": 2445
            },
            {
              "id": "fault_matrix.io_faults",
              "title": "Disk ağ aygıt kopma matrisi",
              "first": 2446,
              "last": 2450
            },
            {
              "id": "fault_matrix.soak",
              "title": "Uzun ürün workload koşusu",
              "first": 2451,
              "last": 2455
            },
            {
              "id": "fault_matrix.physical_boundary",
              "title": "Süreç kesme güç kaybı ayrımı",
              "first": 2456,
              "last": 2460
            }
          ]
        },
        {
          "id": "portability",
          "title": "Konuk ve araç sürüm matrisi",
          "layer": "harness",
          "first": 2461,
          "last": 2480,
          "features": [
            {
              "id": "portability.mac_hosts",
              "title": "M1 ve M5 yeni imaj matrisi",
              "first": 2461,
              "last": 2465
            },
            {
              "id": "portability.tool_versions",
              "title": "QEMU EDK2 sürüm farkı",
              "first": 2466,
              "last": 2470
            },
            {
              "id": "portability.linux_kvm",
              "title": "Gerçek Linux KVM profili",
              "first": 2471,
              "last": 2475
            },
            {
              "id": "portability.devices",
              "title": "Desteklenen aygıt karar tablosu",
              "first": 2476,
              "last": 2480
            }
          ]
        },
        {
          "id": "release_acceptance",
          "title": "K2500 deneysel sürüm kapısı",
          "layer": "harness",
          "first": 2481,
          "last": 2500,
          "features": [
            {
              "id": "release_acceptance.reproduction",
              "title": "Temiz kaynak yeniden üretim",
              "first": 2481,
              "last": 2485
            },
            {
              "id": "release_acceptance.claim_audit",
              "title": "Site ve imaj iddia eşliği",
              "first": 2486,
              "last": 2490
            },
            {
              "id": "release_acceptance.external_signoff",
              "title": "İnsan ve bağımsız dış onay",
              "first": 2491,
              "last": 2495
            },
            {
              "id": "release_acceptance.final_gate",
              "title": "K2500 açık kapı değerlendirmesi",
              "first": 2496,
              "last": 2500
            }
          ]
        }
      ],
      "gate": {
        "status": "planned",
        "requires": [
          "K2401",
          "K2402",
          "K2403",
          "K2404",
          "K2405",
          "K2406",
          "K2407",
          "K2408",
          "K2409",
          "K2410",
          "K2411",
          "K2412",
          "K2413",
          "K2414",
          "K2415",
          "K2416",
          "K2417",
          "K2418",
          "K2419",
          "K2420",
          "K2421",
          "K2422",
          "K2423",
          "K2424",
          "K2425",
          "K2426",
          "K2427",
          "K2428",
          "K2429",
          "K2430",
          "K2431",
          "K2432",
          "K2433",
          "K2434",
          "K2435",
          "K2436",
          "K2437",
          "K2438",
          "K2439",
          "K2440",
          "K2441",
          "K2442",
          "K2443",
          "K2444",
          "K2445",
          "K2446",
          "K2447",
          "K2448",
          "K2449",
          "K2450",
          "K2451",
          "K2452",
          "K2453",
          "K2454",
          "K2455",
          "K2456",
          "K2457",
          "K2458",
          "K2459",
          "K2460",
          "K2461",
          "K2462",
          "K2463",
          "K2464",
          "K2465",
          "K2466",
          "K2467",
          "K2468",
          "K2469",
          "K2470",
          "K2471",
          "K2472",
          "K2473",
          "K2474",
          "K2475",
          "K2476",
          "K2477",
          "K2478",
          "K2479",
          "K2480",
          "K2481",
          "K2482",
          "K2483",
          "K2484",
          "K2485",
          "K2486",
          "K2487",
          "K2488",
          "K2489",
          "K2490",
          "K2491",
          "K2492",
          "K2493",
          "K2494",
          "K2495",
          "K2496",
          "K2497",
          "K2498",
          "K2499",
          "K2500"
        ],
        "rule": "Önceki faz kapısı ve bu fazın 100 hamlesinin gerçek kanıtı gerekir; son kartın geçmesi tek başına fazı kapatmaz."
      }
    }
  ],
  "moves": [
    {
      "id": "K601",
      "number": 601,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.origin",
      "stage": "contract",
      "title": "Doğrudan ve UEFI kaynak türü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kaynak türü payload yorumunu belirler.",
      "action": "“Doğrudan ve UEFI kaynak türü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kaynak türü payload yorumunu belirler. “İki giriş aynı RAM boyunu bildirir” kabulü ile “Doğrudan DTB BootInfo diye okunur” reddini aynı sözleşmeye bağla.",
      "invariant": "Kaynak türü payload yorumunu belirler",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_origin"
      },
      "dependencies": [],
      "phasePrerequisites": [],
      "positive": "İki giriş aynı RAM boyunu bildirir",
      "counterexample": "Doğrudan DTB BootInfo diye okunur",
      "guestAcceptance": "İki yolda farklı kaynak etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_origin_positive",
        "negativeName": "os_boot_contract_origin_negative",
        "expectedMarker": "TURKOS/OS/K605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kaynak türü payload yorumunu belirler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Doğrudan DTB BootInfo diye okunur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k601"
    },
    {
      "id": "K602",
      "number": 602,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.origin",
      "stage": "implementation",
      "title": "Doğrudan ve UEFI kaynak türü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kaynak türü payload yorumunu belirler.",
      "action": "kernel/src/runtime/boot_contract.rs hedefinde os_boot_contract_origin yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. bootinfo/src/lib.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kaynak türü payload yorumunu belirler",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_origin"
      },
      "dependencies": [
        "K601"
      ],
      "phasePrerequisites": [],
      "positive": "İki giriş aynı RAM boyunu bildirir",
      "counterexample": "Doğrudan DTB BootInfo diye okunur",
      "guestAcceptance": "İki yolda farklı kaynak etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_origin_positive",
        "negativeName": "os_boot_contract_origin_negative",
        "expectedMarker": "TURKOS/OS/K605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki giriş aynı RAM boyunu bildirir ile Doğrudan DTB BootInfo diye okunur ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Doğrudan DTB BootInfo diye okunur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k602"
    },
    {
      "id": "K603",
      "number": 603,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.origin",
      "stage": "positive",
      "title": "Doğrudan ve UEFI kaynak türü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kaynak türü payload yorumunu belirler.",
      "action": "os_boot_contract_origin_positive testini oluştur: “İki giriş aynı RAM boyunu bildirir”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kaynak türü payload yorumunu belirler",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_origin"
      },
      "dependencies": [
        "K602"
      ],
      "phasePrerequisites": [],
      "positive": "İki giriş aynı RAM boyunu bildirir",
      "counterexample": "Doğrudan DTB BootInfo diye okunur",
      "guestAcceptance": "İki yolda farklı kaynak etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_origin_positive",
        "negativeName": "os_boot_contract_origin_negative",
        "expectedMarker": "TURKOS/OS/K605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki giriş aynı RAM boyunu bildirir girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Doğrudan DTB BootInfo diye okunur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k603"
    },
    {
      "id": "K604",
      "number": 604,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.origin",
      "stage": "negative",
      "title": "Doğrudan ve UEFI kaynak türü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kaynak türü payload yorumunu belirler.",
      "action": "os_boot_contract_origin_negative testini oluştur: “Doğrudan DTB BootInfo diye okunur”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kaynak türü payload yorumunu belirler",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_origin"
      },
      "dependencies": [
        "K603"
      ],
      "phasePrerequisites": [],
      "positive": "İki giriş aynı RAM boyunu bildirir",
      "counterexample": "Doğrudan DTB BootInfo diye okunur",
      "guestAcceptance": "İki yolda farklı kaynak etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_origin_positive",
        "negativeName": "os_boot_contract_origin_negative",
        "expectedMarker": "TURKOS/OS/K605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Doğrudan DTB BootInfo diye okunur karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Doğrudan DTB BootInfo diye okunur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k604"
    },
    {
      "id": "K605",
      "number": 605,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.origin",
      "stage": "integration",
      "title": "Doğrudan ve UEFI kaynak türü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kaynak türü payload yorumunu belirler.",
      "action": "Tek ürün Image'ında “İki yolda farklı kaynak etiketi” kabulünü koştur. scripts/os-acceptance/boot_contract.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kaynak türü payload yorumunu belirler",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_origin"
      },
      "dependencies": [
        "K604"
      ],
      "phasePrerequisites": [],
      "positive": "İki giriş aynı RAM boyunu bildirir",
      "counterexample": "Doğrudan DTB BootInfo diye okunur",
      "guestAcceptance": "İki yolda farklı kaynak etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_origin_positive",
        "negativeName": "os_boot_contract_origin_negative",
        "expectedMarker": "TURKOS/OS/K605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki yolda farklı kaynak etiketi; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Doğrudan DTB BootInfo diye okunur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k605"
    },
    {
      "id": "K606",
      "number": 606,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.header",
      "stage": "contract",
      "title": "Sahipli başlık çözümleme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Sürüm ve uzunluk okumadan sınırlandırılır.",
      "action": "“Sahipli başlık çözümleme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Sürüm ve uzunluk okumadan sınırlandırılır. “V1 ve tam başlık” kabulü ile “Kesik başlık veya sürüm 255” reddini aynı sözleşmeye bağla.",
      "invariant": "Sürüm ve uzunluk okumadan sınırlandırılır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_header"
      },
      "dependencies": [
        "K605"
      ],
      "phasePrerequisites": [],
      "positive": "V1 ve tam başlık",
      "counterexample": "Kesik başlık veya sürüm 255",
      "guestAcceptance": "Bozuk başlık tahsisten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_header_positive",
        "negativeName": "os_boot_contract_header_negative",
        "expectedMarker": "TURKOS/OS/K610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Sürüm ve uzunluk okumadan sınırlandırılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kesik başlık veya sürüm 255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k606"
    },
    {
      "id": "K607",
      "number": 607,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.header",
      "stage": "implementation",
      "title": "Sahipli başlık çözümleme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Sürüm ve uzunluk okumadan sınırlandırılır.",
      "action": "kernel/src/runtime/boot_contract.rs hedefinde os_boot_contract_header yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. bootinfo/src/lib.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Sürüm ve uzunluk okumadan sınırlandırılır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_header"
      },
      "dependencies": [
        "K606"
      ],
      "phasePrerequisites": [],
      "positive": "V1 ve tam başlık",
      "counterexample": "Kesik başlık veya sürüm 255",
      "guestAcceptance": "Bozuk başlık tahsisten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_header_positive",
        "negativeName": "os_boot_contract_header_negative",
        "expectedMarker": "TURKOS/OS/K610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. V1 ve tam başlık ile Kesik başlık veya sürüm 255 ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kesik başlık veya sürüm 255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k607"
    },
    {
      "id": "K608",
      "number": 608,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.header",
      "stage": "positive",
      "title": "Sahipli başlık çözümleme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Sürüm ve uzunluk okumadan sınırlandırılır.",
      "action": "os_boot_contract_header_positive testini oluştur: “V1 ve tam başlık”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Sürüm ve uzunluk okumadan sınırlandırılır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_header"
      },
      "dependencies": [
        "K607"
      ],
      "phasePrerequisites": [],
      "positive": "V1 ve tam başlık",
      "counterexample": "Kesik başlık veya sürüm 255",
      "guestAcceptance": "Bozuk başlık tahsisten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_header_positive",
        "negativeName": "os_boot_contract_header_negative",
        "expectedMarker": "TURKOS/OS/K610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; V1 ve tam başlık girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kesik başlık veya sürüm 255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k608"
    },
    {
      "id": "K609",
      "number": 609,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.header",
      "stage": "negative",
      "title": "Sahipli başlık çözümleme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Sürüm ve uzunluk okumadan sınırlandırılır.",
      "action": "os_boot_contract_header_negative testini oluştur: “Kesik başlık veya sürüm 255”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Sürüm ve uzunluk okumadan sınırlandırılır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_header"
      },
      "dependencies": [
        "K608"
      ],
      "phasePrerequisites": [],
      "positive": "V1 ve tam başlık",
      "counterexample": "Kesik başlık veya sürüm 255",
      "guestAcceptance": "Bozuk başlık tahsisten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_header_positive",
        "negativeName": "os_boot_contract_header_negative",
        "expectedMarker": "TURKOS/OS/K610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kesik başlık veya sürüm 255 karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kesik başlık veya sürüm 255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k609"
    },
    {
      "id": "K610",
      "number": 610,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.header",
      "stage": "integration",
      "title": "Sahipli başlık çözümleme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Sürüm ve uzunluk okumadan sınırlandırılır.",
      "action": "Tek ürün Image'ında “Bozuk başlık tahsisten önce reddedilir” kabulünü koştur. scripts/os-acceptance/boot_contract.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Sürüm ve uzunluk okumadan sınırlandırılır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_header"
      },
      "dependencies": [
        "K609"
      ],
      "phasePrerequisites": [],
      "positive": "V1 ve tam başlık",
      "counterexample": "Kesik başlık veya sürüm 255",
      "guestAcceptance": "Bozuk başlık tahsisten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_header_positive",
        "negativeName": "os_boot_contract_header_negative",
        "expectedMarker": "TURKOS/OS/K610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk başlık tahsisten önce reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kesik başlık veya sürüm 255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k610"
    },
    {
      "id": "K611",
      "number": 611,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.regions",
      "stage": "contract",
      "title": "Başlangıç rezervasyon listesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Image DTB map ve loader sayfaları ayrıdır.",
      "action": "“Başlangıç rezervasyon listesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Image DTB map ve loader sayfaları ayrıdır. “Komşu ama ayrık aralıklar” kabulü ile “Payload Image ortasını keser” reddini aynı sözleşmeye bağla.",
      "invariant": "Image DTB map ve loader sayfaları ayrıdır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_regions"
      },
      "dependencies": [
        "K610"
      ],
      "phasePrerequisites": [],
      "positive": "Komşu ama ayrık aralıklar",
      "counterexample": "Payload Image ortasını keser",
      "guestAcceptance": "Ayrıcı rezervasyondan sayfa vermez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_regions_positive",
        "negativeName": "os_boot_contract_regions_negative",
        "expectedMarker": "TURKOS/OS/K615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Image DTB map ve loader sayfaları ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Payload Image ortasını keser” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k611"
    },
    {
      "id": "K612",
      "number": 612,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.regions",
      "stage": "implementation",
      "title": "Başlangıç rezervasyon listesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Image DTB map ve loader sayfaları ayrıdır.",
      "action": "kernel/src/runtime/boot_contract.rs hedefinde os_boot_contract_regions yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. bootinfo/src/lib.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Image DTB map ve loader sayfaları ayrıdır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_regions"
      },
      "dependencies": [
        "K611"
      ],
      "phasePrerequisites": [],
      "positive": "Komşu ama ayrık aralıklar",
      "counterexample": "Payload Image ortasını keser",
      "guestAcceptance": "Ayrıcı rezervasyondan sayfa vermez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_regions_positive",
        "negativeName": "os_boot_contract_regions_negative",
        "expectedMarker": "TURKOS/OS/K615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Komşu ama ayrık aralıklar ile Payload Image ortasını keser ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Payload Image ortasını keser” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k612"
    },
    {
      "id": "K613",
      "number": 613,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.regions",
      "stage": "positive",
      "title": "Başlangıç rezervasyon listesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Image DTB map ve loader sayfaları ayrıdır.",
      "action": "os_boot_contract_regions_positive testini oluştur: “Komşu ama ayrık aralıklar”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Image DTB map ve loader sayfaları ayrıdır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_regions"
      },
      "dependencies": [
        "K612"
      ],
      "phasePrerequisites": [],
      "positive": "Komşu ama ayrık aralıklar",
      "counterexample": "Payload Image ortasını keser",
      "guestAcceptance": "Ayrıcı rezervasyondan sayfa vermez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_regions_positive",
        "negativeName": "os_boot_contract_regions_negative",
        "expectedMarker": "TURKOS/OS/K615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Komşu ama ayrık aralıklar girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Payload Image ortasını keser” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k613"
    },
    {
      "id": "K614",
      "number": 614,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.regions",
      "stage": "negative",
      "title": "Başlangıç rezervasyon listesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Image DTB map ve loader sayfaları ayrıdır.",
      "action": "os_boot_contract_regions_negative testini oluştur: “Payload Image ortasını keser”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Image DTB map ve loader sayfaları ayrıdır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_regions"
      },
      "dependencies": [
        "K613"
      ],
      "phasePrerequisites": [],
      "positive": "Komşu ama ayrık aralıklar",
      "counterexample": "Payload Image ortasını keser",
      "guestAcceptance": "Ayrıcı rezervasyondan sayfa vermez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_regions_positive",
        "negativeName": "os_boot_contract_regions_negative",
        "expectedMarker": "TURKOS/OS/K615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Payload Image ortasını keser karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Payload Image ortasını keser” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k614"
    },
    {
      "id": "K615",
      "number": 615,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.regions",
      "stage": "integration",
      "title": "Başlangıç rezervasyon listesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Image DTB map ve loader sayfaları ayrıdır.",
      "action": "Tek ürün Image'ında “Ayrıcı rezervasyondan sayfa vermez” kabulünü koştur. scripts/os-acceptance/boot_contract.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Image DTB map ve loader sayfaları ayrıdır",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_regions"
      },
      "dependencies": [
        "K614"
      ],
      "phasePrerequisites": [],
      "positive": "Komşu ama ayrık aralıklar",
      "counterexample": "Payload Image ortasını keser",
      "guestAcceptance": "Ayrıcı rezervasyondan sayfa vermez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_regions_positive",
        "negativeName": "os_boot_contract_regions_negative",
        "expectedMarker": "TURKOS/OS/K615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ayrıcı rezervasyondan sayfa vermez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Payload Image ortasını keser” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k615"
    },
    {
      "id": "K616",
      "number": 616,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.finalize",
      "stage": "contract",
      "title": "Firmware sonrası sahiplik devri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Runtime yalnız kendi kopyasını okur.",
      "action": "“Firmware sonrası sahiplik devri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Runtime yalnız kendi kopyasını okur. “Kaynak map sonradan değişir” kabulü ile “Exit sonrası hizmet çağrısı” reddini aynı sözleşmeye bağla.",
      "invariant": "Runtime yalnız kendi kopyasını okur",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_finalize"
      },
      "dependencies": [
        "K615"
      ],
      "phasePrerequisites": [],
      "positive": "Kaynak map sonradan değişir",
      "counterexample": "Exit sonrası hizmet çağrısı",
      "guestAcceptance": "UEFI ve doğrudan devralma izleri",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_finalize_positive",
        "negativeName": "os_boot_contract_finalize_negative",
        "expectedMarker": "TURKOS/OS/K620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Runtime yalnız kendi kopyasını okur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Exit sonrası hizmet çağrısı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k616"
    },
    {
      "id": "K617",
      "number": 617,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.finalize",
      "stage": "implementation",
      "title": "Firmware sonrası sahiplik devri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Runtime yalnız kendi kopyasını okur.",
      "action": "kernel/src/runtime/boot_contract.rs hedefinde os_boot_contract_finalize yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. bootinfo/src/lib.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Runtime yalnız kendi kopyasını okur",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_finalize"
      },
      "dependencies": [
        "K616"
      ],
      "phasePrerequisites": [],
      "positive": "Kaynak map sonradan değişir",
      "counterexample": "Exit sonrası hizmet çağrısı",
      "guestAcceptance": "UEFI ve doğrudan devralma izleri",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_finalize_positive",
        "negativeName": "os_boot_contract_finalize_negative",
        "expectedMarker": "TURKOS/OS/K620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kaynak map sonradan değişir ile Exit sonrası hizmet çağrısı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Exit sonrası hizmet çağrısı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k617"
    },
    {
      "id": "K618",
      "number": 618,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.finalize",
      "stage": "positive",
      "title": "Firmware sonrası sahiplik devri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Runtime yalnız kendi kopyasını okur.",
      "action": "os_boot_contract_finalize_positive testini oluştur: “Kaynak map sonradan değişir”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Runtime yalnız kendi kopyasını okur",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_finalize"
      },
      "dependencies": [
        "K617"
      ],
      "phasePrerequisites": [],
      "positive": "Kaynak map sonradan değişir",
      "counterexample": "Exit sonrası hizmet çağrısı",
      "guestAcceptance": "UEFI ve doğrudan devralma izleri",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_finalize_positive",
        "negativeName": "os_boot_contract_finalize_negative",
        "expectedMarker": "TURKOS/OS/K620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kaynak map sonradan değişir girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Exit sonrası hizmet çağrısı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k618"
    },
    {
      "id": "K619",
      "number": 619,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.finalize",
      "stage": "negative",
      "title": "Firmware sonrası sahiplik devri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Runtime yalnız kendi kopyasını okur.",
      "action": "os_boot_contract_finalize_negative testini oluştur: “Exit sonrası hizmet çağrısı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Runtime yalnız kendi kopyasını okur",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_finalize"
      },
      "dependencies": [
        "K618"
      ],
      "phasePrerequisites": [],
      "positive": "Kaynak map sonradan değişir",
      "counterexample": "Exit sonrası hizmet çağrısı",
      "guestAcceptance": "UEFI ve doğrudan devralma izleri",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_finalize_positive",
        "negativeName": "os_boot_contract_finalize_negative",
        "expectedMarker": "TURKOS/OS/K620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Exit sonrası hizmet çağrısı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Exit sonrası hizmet çağrısı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k619"
    },
    {
      "id": "K620",
      "number": 620,
      "phase": 1,
      "module": "boot_contract",
      "feature": "boot_contract.finalize",
      "stage": "integration",
      "title": "Firmware sonrası sahiplik devri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Runtime yalnız kendi kopyasını okur.",
      "action": "Tek ürün Image'ında “UEFI ve doğrudan devralma izleri” kabulünü koştur. scripts/os-acceptance/boot_contract.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Runtime yalnız kendi kopyasını okur",
      "source": {
        "target": "kernel/src/runtime/boot_contract.rs",
        "targetStatus": "proposed",
        "existingReference": "bootinfo/src/lib.rs",
        "existingReferenceSha256": "73c8a13b22fe03307f56acecf5b1bb04d2ba476f3a6f02bff19d1c03d17b7aab",
        "symbol": "os_boot_contract_finalize"
      },
      "dependencies": [
        "K619"
      ],
      "phasePrerequisites": [],
      "positive": "Kaynak map sonradan değişir",
      "counterexample": "Exit sonrası hizmet çağrısı",
      "guestAcceptance": "UEFI ve doğrudan devralma izleri",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/boot_contract.rs",
        "harness": "scripts/os-acceptance/boot_contract.mjs",
        "positiveName": "os_boot_contract_finalize_positive",
        "negativeName": "os_boot_contract_finalize_negative",
        "expectedMarker": "TURKOS/OS/K620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "UEFI ve doğrudan devralma izleri; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Exit sonrası hizmet çağrısı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k620"
    },
    {
      "id": "K621",
      "number": 621,
      "phase": 1,
      "module": "entry",
      "feature": "entry.level",
      "stage": "contract",
      "title": "EL1 giriş normalizasyonu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Desteklenen EL ve DAIF açık kaydedilir.",
      "action": "“EL1 giriş normalizasyonu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Desteklenen EL ve DAIF açık kaydedilir. “EL1 ve uygun stack” kabulü ile “Desteklenmeyen exception level” reddini aynı sözleşmeye bağla.",
      "invariant": "Desteklenen EL ve DAIF açık kaydedilir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_level"
      },
      "dependencies": [
        "K620"
      ],
      "phasePrerequisites": [],
      "positive": "EL1 ve uygun stack",
      "counterexample": "Desteklenmeyen exception level",
      "guestAcceptance": "Runtime girişte EL1 etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_level_positive",
        "negativeName": "os_entry_level_negative",
        "expectedMarker": "TURKOS/OS/K625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Desteklenen EL ve DAIF açık kaydedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Desteklenmeyen exception level” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k621"
    },
    {
      "id": "K622",
      "number": 622,
      "phase": 1,
      "module": "entry",
      "feature": "entry.level",
      "stage": "implementation",
      "title": "EL1 giriş normalizasyonu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Desteklenen EL ve DAIF açık kaydedilir.",
      "action": "kernel/src/arch/aarch64/entry.rs hedefinde os_entry_level yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/boot.S bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Desteklenen EL ve DAIF açık kaydedilir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_level"
      },
      "dependencies": [
        "K621"
      ],
      "phasePrerequisites": [],
      "positive": "EL1 ve uygun stack",
      "counterexample": "Desteklenmeyen exception level",
      "guestAcceptance": "Runtime girişte EL1 etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_level_positive",
        "negativeName": "os_entry_level_negative",
        "expectedMarker": "TURKOS/OS/K625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. EL1 ve uygun stack ile Desteklenmeyen exception level ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Desteklenmeyen exception level” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k622"
    },
    {
      "id": "K623",
      "number": 623,
      "phase": 1,
      "module": "entry",
      "feature": "entry.level",
      "stage": "positive",
      "title": "EL1 giriş normalizasyonu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Desteklenen EL ve DAIF açık kaydedilir.",
      "action": "os_entry_level_positive testini oluştur: “EL1 ve uygun stack”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Desteklenen EL ve DAIF açık kaydedilir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_level"
      },
      "dependencies": [
        "K622"
      ],
      "phasePrerequisites": [],
      "positive": "EL1 ve uygun stack",
      "counterexample": "Desteklenmeyen exception level",
      "guestAcceptance": "Runtime girişte EL1 etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_level_positive",
        "negativeName": "os_entry_level_negative",
        "expectedMarker": "TURKOS/OS/K625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; EL1 ve uygun stack girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Desteklenmeyen exception level” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k623"
    },
    {
      "id": "K624",
      "number": 624,
      "phase": 1,
      "module": "entry",
      "feature": "entry.level",
      "stage": "negative",
      "title": "EL1 giriş normalizasyonu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Desteklenen EL ve DAIF açık kaydedilir.",
      "action": "os_entry_level_negative testini oluştur: “Desteklenmeyen exception level”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Desteklenen EL ve DAIF açık kaydedilir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_level"
      },
      "dependencies": [
        "K623"
      ],
      "phasePrerequisites": [],
      "positive": "EL1 ve uygun stack",
      "counterexample": "Desteklenmeyen exception level",
      "guestAcceptance": "Runtime girişte EL1 etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_level_positive",
        "negativeName": "os_entry_level_negative",
        "expectedMarker": "TURKOS/OS/K625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Desteklenmeyen exception level karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Desteklenmeyen exception level” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k624"
    },
    {
      "id": "K625",
      "number": 625,
      "phase": 1,
      "module": "entry",
      "feature": "entry.level",
      "stage": "integration",
      "title": "EL1 giriş normalizasyonu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Desteklenen EL ve DAIF açık kaydedilir.",
      "action": "Tek ürün Image'ında “Runtime girişte EL1 etiketi” kabulünü koştur. scripts/os-acceptance/entry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Desteklenen EL ve DAIF açık kaydedilir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_level"
      },
      "dependencies": [
        "K624"
      ],
      "phasePrerequisites": [],
      "positive": "EL1 ve uygun stack",
      "counterexample": "Desteklenmeyen exception level",
      "guestAcceptance": "Runtime girişte EL1 etiketi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_level_positive",
        "negativeName": "os_entry_level_negative",
        "expectedMarker": "TURKOS/OS/K625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Runtime girişte EL1 etiketi; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Desteklenmeyen exception level” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k625"
    },
    {
      "id": "K626",
      "number": 626,
      "phase": 1,
      "module": "entry",
      "feature": "entry.sections",
      "stage": "contract",
      "title": "Kod veri BSS sınırları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bölüm sınırları taşmasız ve ayrık.",
      "action": "“Kod veri BSS sınırları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bölüm sınırları taşmasız ve ayrık. “Hizalı text rodata data BSS” kabulü ile “Data text üstüne biner” reddini aynı sözleşmeye bağla.",
      "invariant": "Bölüm sınırları taşmasız ve ayrık",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_sections"
      },
      "dependencies": [
        "K625"
      ],
      "phasePrerequisites": [],
      "positive": "Hizalı text rodata data BSS",
      "counterexample": "Data text üstüne biner",
      "guestAcceptance": "BSS sıfır ve rodata korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_sections_positive",
        "negativeName": "os_entry_sections_negative",
        "expectedMarker": "TURKOS/OS/K630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bölüm sınırları taşmasız ve ayrık kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Data text üstüne biner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k626"
    },
    {
      "id": "K627",
      "number": 627,
      "phase": 1,
      "module": "entry",
      "feature": "entry.sections",
      "stage": "implementation",
      "title": "Kod veri BSS sınırları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bölüm sınırları taşmasız ve ayrık.",
      "action": "kernel/src/arch/aarch64/entry.rs hedefinde os_entry_sections yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/boot.S bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bölüm sınırları taşmasız ve ayrık",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_sections"
      },
      "dependencies": [
        "K626"
      ],
      "phasePrerequisites": [],
      "positive": "Hizalı text rodata data BSS",
      "counterexample": "Data text üstüne biner",
      "guestAcceptance": "BSS sıfır ve rodata korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_sections_positive",
        "negativeName": "os_entry_sections_negative",
        "expectedMarker": "TURKOS/OS/K630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Hizalı text rodata data BSS ile Data text üstüne biner ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Data text üstüne biner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k627"
    },
    {
      "id": "K628",
      "number": 628,
      "phase": 1,
      "module": "entry",
      "feature": "entry.sections",
      "stage": "positive",
      "title": "Kod veri BSS sınırları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bölüm sınırları taşmasız ve ayrık.",
      "action": "os_entry_sections_positive testini oluştur: “Hizalı text rodata data BSS”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bölüm sınırları taşmasız ve ayrık",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_sections"
      },
      "dependencies": [
        "K627"
      ],
      "phasePrerequisites": [],
      "positive": "Hizalı text rodata data BSS",
      "counterexample": "Data text üstüne biner",
      "guestAcceptance": "BSS sıfır ve rodata korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_sections_positive",
        "negativeName": "os_entry_sections_negative",
        "expectedMarker": "TURKOS/OS/K630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Hizalı text rodata data BSS girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Data text üstüne biner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k628"
    },
    {
      "id": "K629",
      "number": 629,
      "phase": 1,
      "module": "entry",
      "feature": "entry.sections",
      "stage": "negative",
      "title": "Kod veri BSS sınırları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bölüm sınırları taşmasız ve ayrık.",
      "action": "os_entry_sections_negative testini oluştur: “Data text üstüne biner”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bölüm sınırları taşmasız ve ayrık",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_sections"
      },
      "dependencies": [
        "K628"
      ],
      "phasePrerequisites": [],
      "positive": "Hizalı text rodata data BSS",
      "counterexample": "Data text üstüne biner",
      "guestAcceptance": "BSS sıfır ve rodata korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_sections_positive",
        "negativeName": "os_entry_sections_negative",
        "expectedMarker": "TURKOS/OS/K630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Data text üstüne biner karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Data text üstüne biner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k629"
    },
    {
      "id": "K630",
      "number": 630,
      "phase": 1,
      "module": "entry",
      "feature": "entry.sections",
      "stage": "integration",
      "title": "Kod veri BSS sınırları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bölüm sınırları taşmasız ve ayrık.",
      "action": "Tek ürün Image'ında “BSS sıfır ve rodata korunur” kabulünü koştur. scripts/os-acceptance/entry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bölüm sınırları taşmasız ve ayrık",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_sections"
      },
      "dependencies": [
        "K629"
      ],
      "phasePrerequisites": [],
      "positive": "Hizalı text rodata data BSS",
      "counterexample": "Data text üstüne biner",
      "guestAcceptance": "BSS sıfır ve rodata korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_sections_positive",
        "negativeName": "os_entry_sections_negative",
        "expectedMarker": "TURKOS/OS/K630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "BSS sıfır ve rodata korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Data text üstüne biner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k630"
    },
    {
      "id": "K631",
      "number": 631,
      "phase": 1,
      "module": "entry",
      "feature": "entry.stack",
      "stage": "contract",
      "title": "İlk kernel yığını · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: SP hizalı ve guard sınırının üstündedir.",
      "action": "“İlk kernel yığını” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: SP hizalı ve guard sınırının üstündedir. “16 bayt SP hizası” kabulü ile “Guard altına kasıtlı erişim” reddini aynı sözleşmeye bağla.",
      "invariant": "SP hizalı ve guard sınırının üstündedir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_stack"
      },
      "dependencies": [
        "K630"
      ],
      "phasePrerequisites": [],
      "positive": "16 bayt SP hizası",
      "counterexample": "Guard altına kasıtlı erişim",
      "guestAcceptance": "Yığın kanaryası açılıştan sağ çıkar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_stack_positive",
        "negativeName": "os_entry_stack_negative",
        "expectedMarker": "TURKOS/OS/K635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu SP hizalı ve guard sınırının üstündedir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Guard altına kasıtlı erişim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k631"
    },
    {
      "id": "K632",
      "number": 632,
      "phase": 1,
      "module": "entry",
      "feature": "entry.stack",
      "stage": "implementation",
      "title": "İlk kernel yığını · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: SP hizalı ve guard sınırının üstündedir.",
      "action": "kernel/src/arch/aarch64/entry.rs hedefinde os_entry_stack yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/boot.S bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "SP hizalı ve guard sınırının üstündedir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_stack"
      },
      "dependencies": [
        "K631"
      ],
      "phasePrerequisites": [],
      "positive": "16 bayt SP hizası",
      "counterexample": "Guard altına kasıtlı erişim",
      "guestAcceptance": "Yığın kanaryası açılıştan sağ çıkar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_stack_positive",
        "negativeName": "os_entry_stack_negative",
        "expectedMarker": "TURKOS/OS/K635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 16 bayt SP hizası ile Guard altına kasıtlı erişim ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Guard altına kasıtlı erişim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k632"
    },
    {
      "id": "K633",
      "number": 633,
      "phase": 1,
      "module": "entry",
      "feature": "entry.stack",
      "stage": "positive",
      "title": "İlk kernel yığını · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: SP hizalı ve guard sınırının üstündedir.",
      "action": "os_entry_stack_positive testini oluştur: “16 bayt SP hizası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "SP hizalı ve guard sınırının üstündedir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_stack"
      },
      "dependencies": [
        "K632"
      ],
      "phasePrerequisites": [],
      "positive": "16 bayt SP hizası",
      "counterexample": "Guard altına kasıtlı erişim",
      "guestAcceptance": "Yığın kanaryası açılıştan sağ çıkar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_stack_positive",
        "negativeName": "os_entry_stack_negative",
        "expectedMarker": "TURKOS/OS/K635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 16 bayt SP hizası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Guard altına kasıtlı erişim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k633"
    },
    {
      "id": "K634",
      "number": 634,
      "phase": 1,
      "module": "entry",
      "feature": "entry.stack",
      "stage": "negative",
      "title": "İlk kernel yığını · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: SP hizalı ve guard sınırının üstündedir.",
      "action": "os_entry_stack_negative testini oluştur: “Guard altına kasıtlı erişim”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "SP hizalı ve guard sınırının üstündedir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_stack"
      },
      "dependencies": [
        "K633"
      ],
      "phasePrerequisites": [],
      "positive": "16 bayt SP hizası",
      "counterexample": "Guard altına kasıtlı erişim",
      "guestAcceptance": "Yığın kanaryası açılıştan sağ çıkar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_stack_positive",
        "negativeName": "os_entry_stack_negative",
        "expectedMarker": "TURKOS/OS/K635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Guard altına kasıtlı erişim karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Guard altına kasıtlı erişim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k634"
    },
    {
      "id": "K635",
      "number": 635,
      "phase": 1,
      "module": "entry",
      "feature": "entry.stack",
      "stage": "integration",
      "title": "İlk kernel yığını · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: SP hizalı ve guard sınırının üstündedir.",
      "action": "Tek ürün Image'ında “Yığın kanaryası açılıştan sağ çıkar” kabulünü koştur. scripts/os-acceptance/entry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "SP hizalı ve guard sınırının üstündedir",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_stack"
      },
      "dependencies": [
        "K634"
      ],
      "phasePrerequisites": [],
      "positive": "16 bayt SP hizası",
      "counterexample": "Guard altına kasıtlı erişim",
      "guestAcceptance": "Yığın kanaryası açılıştan sağ çıkar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_stack_positive",
        "negativeName": "os_entry_stack_negative",
        "expectedMarker": "TURKOS/OS/K635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yığın kanaryası açılıştan sağ çıkar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Guard altına kasıtlı erişim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k635"
    },
    {
      "id": "K636",
      "number": 636,
      "phase": 1,
      "module": "entry",
      "feature": "entry.arguments",
      "stage": "contract",
      "title": "Giriş kayıtlarının korunması · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: x0 x1 Rust devrine kadar değişmez.",
      "action": "“Giriş kayıtlarının korunması” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: x0 x1 Rust devrine kadar değişmez. “DTB ve payload tanıkları” kabulü ile “Assembly x1 değerini ezer” reddini aynı sözleşmeye bağla.",
      "invariant": "x0 x1 Rust devrine kadar değişmez",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_arguments"
      },
      "dependencies": [
        "K635"
      ],
      "phasePrerequisites": [],
      "positive": "DTB ve payload tanıkları",
      "counterexample": "Assembly x1 değerini ezer",
      "guestAcceptance": "Rust gözlemi loader tanığına eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_arguments_positive",
        "negativeName": "os_entry_arguments_negative",
        "expectedMarker": "TURKOS/OS/K640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu x0 x1 Rust devrine kadar değişmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Assembly x1 değerini ezer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k636"
    },
    {
      "id": "K637",
      "number": 637,
      "phase": 1,
      "module": "entry",
      "feature": "entry.arguments",
      "stage": "implementation",
      "title": "Giriş kayıtlarının korunması · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: x0 x1 Rust devrine kadar değişmez.",
      "action": "kernel/src/arch/aarch64/entry.rs hedefinde os_entry_arguments yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/boot.S bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "x0 x1 Rust devrine kadar değişmez",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_arguments"
      },
      "dependencies": [
        "K636"
      ],
      "phasePrerequisites": [],
      "positive": "DTB ve payload tanıkları",
      "counterexample": "Assembly x1 değerini ezer",
      "guestAcceptance": "Rust gözlemi loader tanığına eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_arguments_positive",
        "negativeName": "os_entry_arguments_negative",
        "expectedMarker": "TURKOS/OS/K640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. DTB ve payload tanıkları ile Assembly x1 değerini ezer ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Assembly x1 değerini ezer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k637"
    },
    {
      "id": "K638",
      "number": 638,
      "phase": 1,
      "module": "entry",
      "feature": "entry.arguments",
      "stage": "positive",
      "title": "Giriş kayıtlarının korunması · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: x0 x1 Rust devrine kadar değişmez.",
      "action": "os_entry_arguments_positive testini oluştur: “DTB ve payload tanıkları”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "x0 x1 Rust devrine kadar değişmez",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_arguments"
      },
      "dependencies": [
        "K637"
      ],
      "phasePrerequisites": [],
      "positive": "DTB ve payload tanıkları",
      "counterexample": "Assembly x1 değerini ezer",
      "guestAcceptance": "Rust gözlemi loader tanığına eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_arguments_positive",
        "negativeName": "os_entry_arguments_negative",
        "expectedMarker": "TURKOS/OS/K640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; DTB ve payload tanıkları girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Assembly x1 değerini ezer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k638"
    },
    {
      "id": "K639",
      "number": 639,
      "phase": 1,
      "module": "entry",
      "feature": "entry.arguments",
      "stage": "negative",
      "title": "Giriş kayıtlarının korunması · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: x0 x1 Rust devrine kadar değişmez.",
      "action": "os_entry_arguments_negative testini oluştur: “Assembly x1 değerini ezer”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "x0 x1 Rust devrine kadar değişmez",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_arguments"
      },
      "dependencies": [
        "K638"
      ],
      "phasePrerequisites": [],
      "positive": "DTB ve payload tanıkları",
      "counterexample": "Assembly x1 değerini ezer",
      "guestAcceptance": "Rust gözlemi loader tanığına eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_arguments_positive",
        "negativeName": "os_entry_arguments_negative",
        "expectedMarker": "TURKOS/OS/K640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Assembly x1 değerini ezer karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Assembly x1 değerini ezer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k639"
    },
    {
      "id": "K640",
      "number": 640,
      "phase": 1,
      "module": "entry",
      "feature": "entry.arguments",
      "stage": "integration",
      "title": "Giriş kayıtlarının korunması · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: x0 x1 Rust devrine kadar değişmez.",
      "action": "Tek ürün Image'ında “Rust gözlemi loader tanığına eşit” kabulünü koştur. scripts/os-acceptance/entry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "x0 x1 Rust devrine kadar değişmez",
      "source": {
        "target": "kernel/src/arch/aarch64/entry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/boot.S",
        "existingReferenceSha256": "2b14c1bfd2a088ecbde9d87e786ab1b6ef28588aa2386273c6fadb5e1638f3f2",
        "symbol": "os_entry_arguments"
      },
      "dependencies": [
        "K639"
      ],
      "phasePrerequisites": [],
      "positive": "DTB ve payload tanıkları",
      "counterexample": "Assembly x1 değerini ezer",
      "guestAcceptance": "Rust gözlemi loader tanığına eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entry.rs",
        "harness": "scripts/os-acceptance/entry.mjs",
        "positiveName": "os_entry_arguments_positive",
        "negativeName": "os_entry_arguments_negative",
        "expectedMarker": "TURKOS/OS/K640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Rust gözlemi loader tanığına eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Assembly x1 değerini ezer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k640"
    },
    {
      "id": "K641",
      "number": 641,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.stages",
      "stage": "contract",
      "title": "Runtime durum makinesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Hizmet yalnız önkoşulu bitince başlar.",
      "action": "“Runtime durum makinesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hizmet yalnız önkoşulu bitince başlar. “Boot Memory IRQ Tasks sırası” kabulü ile “Scheduler bellekten önce başlar” reddini aynı sözleşmeye bağla.",
      "invariant": "Hizmet yalnız önkoşulu bitince başlar",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_stages"
      },
      "dependencies": [
        "K640"
      ],
      "phasePrerequisites": [],
      "positive": "Boot Memory IRQ Tasks sırası",
      "counterexample": "Scheduler bellekten önce başlar",
      "guestAcceptance": "Sıralı ürün başlatma günlüğü",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_stages_positive",
        "negativeName": "os_runtime_stages_negative",
        "expectedMarker": "TURKOS/OS/K645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hizmet yalnız önkoşulu bitince başlar kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Scheduler bellekten önce başlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k641"
    },
    {
      "id": "K642",
      "number": 642,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.stages",
      "stage": "implementation",
      "title": "Runtime durum makinesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Hizmet yalnız önkoşulu bitince başlar.",
      "action": "kernel/src/runtime/runtime.rs hedefinde os_runtime_stages yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/main.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hizmet yalnız önkoşulu bitince başlar",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_stages"
      },
      "dependencies": [
        "K641"
      ],
      "phasePrerequisites": [],
      "positive": "Boot Memory IRQ Tasks sırası",
      "counterexample": "Scheduler bellekten önce başlar",
      "guestAcceptance": "Sıralı ürün başlatma günlüğü",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_stages_positive",
        "negativeName": "os_runtime_stages_negative",
        "expectedMarker": "TURKOS/OS/K645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boot Memory IRQ Tasks sırası ile Scheduler bellekten önce başlar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Scheduler bellekten önce başlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k642"
    },
    {
      "id": "K643",
      "number": 643,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.stages",
      "stage": "positive",
      "title": "Runtime durum makinesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Hizmet yalnız önkoşulu bitince başlar.",
      "action": "os_runtime_stages_positive testini oluştur: “Boot Memory IRQ Tasks sırası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hizmet yalnız önkoşulu bitince başlar",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_stages"
      },
      "dependencies": [
        "K642"
      ],
      "phasePrerequisites": [],
      "positive": "Boot Memory IRQ Tasks sırası",
      "counterexample": "Scheduler bellekten önce başlar",
      "guestAcceptance": "Sıralı ürün başlatma günlüğü",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_stages_positive",
        "negativeName": "os_runtime_stages_negative",
        "expectedMarker": "TURKOS/OS/K645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boot Memory IRQ Tasks sırası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Scheduler bellekten önce başlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k643"
    },
    {
      "id": "K644",
      "number": 644,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.stages",
      "stage": "negative",
      "title": "Runtime durum makinesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Hizmet yalnız önkoşulu bitince başlar.",
      "action": "os_runtime_stages_negative testini oluştur: “Scheduler bellekten önce başlar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hizmet yalnız önkoşulu bitince başlar",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_stages"
      },
      "dependencies": [
        "K643"
      ],
      "phasePrerequisites": [],
      "positive": "Boot Memory IRQ Tasks sırası",
      "counterexample": "Scheduler bellekten önce başlar",
      "guestAcceptance": "Sıralı ürün başlatma günlüğü",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_stages_positive",
        "negativeName": "os_runtime_stages_negative",
        "expectedMarker": "TURKOS/OS/K645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Scheduler bellekten önce başlar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Scheduler bellekten önce başlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k644"
    },
    {
      "id": "K645",
      "number": 645,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.stages",
      "stage": "integration",
      "title": "Runtime durum makinesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Hizmet yalnız önkoşulu bitince başlar.",
      "action": "Tek ürün Image'ında “Sıralı ürün başlatma günlüğü” kabulünü koştur. scripts/os-acceptance/runtime.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hizmet yalnız önkoşulu bitince başlar",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_stages"
      },
      "dependencies": [
        "K644"
      ],
      "phasePrerequisites": [],
      "positive": "Boot Memory IRQ Tasks sırası",
      "counterexample": "Scheduler bellekten önce başlar",
      "guestAcceptance": "Sıralı ürün başlatma günlüğü",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_stages_positive",
        "negativeName": "os_runtime_stages_negative",
        "expectedMarker": "TURKOS/OS/K645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sıralı ürün başlatma günlüğü; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Scheduler bellekten önce başlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k645"
    },
    {
      "id": "K646",
      "number": 646,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.services",
      "stage": "contract",
      "title": "Hizmet kayıt sahipliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Aynı hizmet ikinci kez kurulmaz.",
      "action": "“Hizmet kayıt sahipliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aynı hizmet ikinci kez kurulmaz. “Bir UART ve bir allocator” kabulü ile “İki allocator kaydı” reddini aynı sözleşmeye bağla.",
      "invariant": "Aynı hizmet ikinci kez kurulmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_services"
      },
      "dependencies": [
        "K645"
      ],
      "phasePrerequisites": [],
      "positive": "Bir UART ve bir allocator",
      "counterexample": "İki allocator kaydı",
      "guestAcceptance": "Çift başlatma açık hata verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_services_positive",
        "negativeName": "os_runtime_services_negative",
        "expectedMarker": "TURKOS/OS/K650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aynı hizmet ikinci kez kurulmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki allocator kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k646"
    },
    {
      "id": "K647",
      "number": 647,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.services",
      "stage": "implementation",
      "title": "Hizmet kayıt sahipliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Aynı hizmet ikinci kez kurulmaz.",
      "action": "kernel/src/runtime/runtime.rs hedefinde os_runtime_services yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/main.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aynı hizmet ikinci kez kurulmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_services"
      },
      "dependencies": [
        "K646"
      ],
      "phasePrerequisites": [],
      "positive": "Bir UART ve bir allocator",
      "counterexample": "İki allocator kaydı",
      "guestAcceptance": "Çift başlatma açık hata verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_services_positive",
        "negativeName": "os_runtime_services_negative",
        "expectedMarker": "TURKOS/OS/K650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir UART ve bir allocator ile İki allocator kaydı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki allocator kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k647"
    },
    {
      "id": "K648",
      "number": 648,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.services",
      "stage": "positive",
      "title": "Hizmet kayıt sahipliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Aynı hizmet ikinci kez kurulmaz.",
      "action": "os_runtime_services_positive testini oluştur: “Bir UART ve bir allocator”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aynı hizmet ikinci kez kurulmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_services"
      },
      "dependencies": [
        "K647"
      ],
      "phasePrerequisites": [],
      "positive": "Bir UART ve bir allocator",
      "counterexample": "İki allocator kaydı",
      "guestAcceptance": "Çift başlatma açık hata verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_services_positive",
        "negativeName": "os_runtime_services_negative",
        "expectedMarker": "TURKOS/OS/K650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir UART ve bir allocator girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki allocator kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k648"
    },
    {
      "id": "K649",
      "number": 649,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.services",
      "stage": "negative",
      "title": "Hizmet kayıt sahipliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Aynı hizmet ikinci kez kurulmaz.",
      "action": "os_runtime_services_negative testini oluştur: “İki allocator kaydı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aynı hizmet ikinci kez kurulmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_services"
      },
      "dependencies": [
        "K648"
      ],
      "phasePrerequisites": [],
      "positive": "Bir UART ve bir allocator",
      "counterexample": "İki allocator kaydı",
      "guestAcceptance": "Çift başlatma açık hata verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_services_positive",
        "negativeName": "os_runtime_services_negative",
        "expectedMarker": "TURKOS/OS/K650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki allocator kaydı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki allocator kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k649"
    },
    {
      "id": "K650",
      "number": 650,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.services",
      "stage": "integration",
      "title": "Hizmet kayıt sahipliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Aynı hizmet ikinci kez kurulmaz.",
      "action": "Tek ürün Image'ında “Çift başlatma açık hata verir” kabulünü koştur. scripts/os-acceptance/runtime.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aynı hizmet ikinci kez kurulmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_services"
      },
      "dependencies": [
        "K649"
      ],
      "phasePrerequisites": [],
      "positive": "Bir UART ve bir allocator",
      "counterexample": "İki allocator kaydı",
      "guestAcceptance": "Çift başlatma açık hata verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_services_positive",
        "negativeName": "os_runtime_services_negative",
        "expectedMarker": "TURKOS/OS/K650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çift başlatma açık hata verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki allocator kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k650"
    },
    {
      "id": "K651",
      "number": 651,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.profiles",
      "stage": "contract",
      "title": "Deney ürün profil ayrımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Probe bayrağı ürün yoluna sızmaz.",
      "action": "“Deney ürün profil ayrımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Probe bayrağı ürün yoluna sızmaz. “Ayrı kabul ve ürün Image” kabulü ile “Negatif probe ürünle birleştirilir” reddini aynı sözleşmeye bağla.",
      "invariant": "Probe bayrağı ürün yoluna sızmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_profiles"
      },
      "dependencies": [
        "K650"
      ],
      "phasePrerequisites": [],
      "positive": "Ayrı kabul ve ürün Image",
      "counterexample": "Negatif probe ürünle birleştirilir",
      "guestAcceptance": "Ürün kendi manifestiyle açılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_profiles_positive",
        "negativeName": "os_runtime_profiles_negative",
        "expectedMarker": "TURKOS/OS/K655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Probe bayrağı ürün yoluna sızmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Negatif probe ürünle birleştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k651"
    },
    {
      "id": "K652",
      "number": 652,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.profiles",
      "stage": "implementation",
      "title": "Deney ürün profil ayrımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Probe bayrağı ürün yoluna sızmaz.",
      "action": "kernel/src/runtime/runtime.rs hedefinde os_runtime_profiles yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/main.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Probe bayrağı ürün yoluna sızmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_profiles"
      },
      "dependencies": [
        "K651"
      ],
      "phasePrerequisites": [],
      "positive": "Ayrı kabul ve ürün Image",
      "counterexample": "Negatif probe ürünle birleştirilir",
      "guestAcceptance": "Ürün kendi manifestiyle açılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_profiles_positive",
        "negativeName": "os_runtime_profiles_negative",
        "expectedMarker": "TURKOS/OS/K655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Ayrı kabul ve ürün Image ile Negatif probe ürünle birleştirilir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Negatif probe ürünle birleştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k652"
    },
    {
      "id": "K653",
      "number": 653,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.profiles",
      "stage": "positive",
      "title": "Deney ürün profil ayrımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Probe bayrağı ürün yoluna sızmaz.",
      "action": "os_runtime_profiles_positive testini oluştur: “Ayrı kabul ve ürün Image”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Probe bayrağı ürün yoluna sızmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_profiles"
      },
      "dependencies": [
        "K652"
      ],
      "phasePrerequisites": [],
      "positive": "Ayrı kabul ve ürün Image",
      "counterexample": "Negatif probe ürünle birleştirilir",
      "guestAcceptance": "Ürün kendi manifestiyle açılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_profiles_positive",
        "negativeName": "os_runtime_profiles_negative",
        "expectedMarker": "TURKOS/OS/K655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Ayrı kabul ve ürün Image girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Negatif probe ürünle birleştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k653"
    },
    {
      "id": "K654",
      "number": 654,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.profiles",
      "stage": "negative",
      "title": "Deney ürün profil ayrımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Probe bayrağı ürün yoluna sızmaz.",
      "action": "os_runtime_profiles_negative testini oluştur: “Negatif probe ürünle birleştirilir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Probe bayrağı ürün yoluna sızmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_profiles"
      },
      "dependencies": [
        "K653"
      ],
      "phasePrerequisites": [],
      "positive": "Ayrı kabul ve ürün Image",
      "counterexample": "Negatif probe ürünle birleştirilir",
      "guestAcceptance": "Ürün kendi manifestiyle açılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_profiles_positive",
        "negativeName": "os_runtime_profiles_negative",
        "expectedMarker": "TURKOS/OS/K655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Negatif probe ürünle birleştirilir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Negatif probe ürünle birleştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k654"
    },
    {
      "id": "K655",
      "number": 655,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.profiles",
      "stage": "integration",
      "title": "Deney ürün profil ayrımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Probe bayrağı ürün yoluna sızmaz.",
      "action": "Tek ürün Image'ında “Ürün kendi manifestiyle açılır” kabulünü koştur. scripts/os-acceptance/runtime.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Probe bayrağı ürün yoluna sızmaz",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_profiles"
      },
      "dependencies": [
        "K654"
      ],
      "phasePrerequisites": [],
      "positive": "Ayrı kabul ve ürün Image",
      "counterexample": "Negatif probe ürünle birleştirilir",
      "guestAcceptance": "Ürün kendi manifestiyle açılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_profiles_positive",
        "negativeName": "os_runtime_profiles_negative",
        "expectedMarker": "TURKOS/OS/K655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ürün kendi manifestiyle açılır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Negatif probe ürünle birleştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k655"
    },
    {
      "id": "K656",
      "number": 656,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.rollback",
      "stage": "contract",
      "title": "Başlatma geri alma sırası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Başarısız hizmet yalnız edinilen kaynağı bırakır.",
      "action": "“Başlatma geri alma sırası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başarısız hizmet yalnız edinilen kaynağı bırakır. “IRQ kurulumu sonrası hata” kabulü ile “Canlı DMA erken iade edilir” reddini aynı sözleşmeye bağla.",
      "invariant": "Başarısız hizmet yalnız edinilen kaynağı bırakır",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_rollback"
      },
      "dependencies": [
        "K655"
      ],
      "phasePrerequisites": [],
      "positive": "IRQ kurulumu sonrası hata",
      "counterexample": "Canlı DMA erken iade edilir",
      "guestAcceptance": "Hata tanısı ve kaynak sayısı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_rollback_positive",
        "negativeName": "os_runtime_rollback_negative",
        "expectedMarker": "TURKOS/OS/K660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başarısız hizmet yalnız edinilen kaynağı bırakır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Canlı DMA erken iade edilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k656"
    },
    {
      "id": "K657",
      "number": 657,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.rollback",
      "stage": "implementation",
      "title": "Başlatma geri alma sırası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Başarısız hizmet yalnız edinilen kaynağı bırakır.",
      "action": "kernel/src/runtime/runtime.rs hedefinde os_runtime_rollback yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/main.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başarısız hizmet yalnız edinilen kaynağı bırakır",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_rollback"
      },
      "dependencies": [
        "K656"
      ],
      "phasePrerequisites": [],
      "positive": "IRQ kurulumu sonrası hata",
      "counterexample": "Canlı DMA erken iade edilir",
      "guestAcceptance": "Hata tanısı ve kaynak sayısı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_rollback_positive",
        "negativeName": "os_runtime_rollback_negative",
        "expectedMarker": "TURKOS/OS/K660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. IRQ kurulumu sonrası hata ile Canlı DMA erken iade edilir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Canlı DMA erken iade edilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k657"
    },
    {
      "id": "K658",
      "number": 658,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.rollback",
      "stage": "positive",
      "title": "Başlatma geri alma sırası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Başarısız hizmet yalnız edinilen kaynağı bırakır.",
      "action": "os_runtime_rollback_positive testini oluştur: “IRQ kurulumu sonrası hata”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başarısız hizmet yalnız edinilen kaynağı bırakır",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_rollback"
      },
      "dependencies": [
        "K657"
      ],
      "phasePrerequisites": [],
      "positive": "IRQ kurulumu sonrası hata",
      "counterexample": "Canlı DMA erken iade edilir",
      "guestAcceptance": "Hata tanısı ve kaynak sayısı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_rollback_positive",
        "negativeName": "os_runtime_rollback_negative",
        "expectedMarker": "TURKOS/OS/K660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; IRQ kurulumu sonrası hata girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Canlı DMA erken iade edilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k658"
    },
    {
      "id": "K659",
      "number": 659,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.rollback",
      "stage": "negative",
      "title": "Başlatma geri alma sırası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Başarısız hizmet yalnız edinilen kaynağı bırakır.",
      "action": "os_runtime_rollback_negative testini oluştur: “Canlı DMA erken iade edilir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başarısız hizmet yalnız edinilen kaynağı bırakır",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_rollback"
      },
      "dependencies": [
        "K658"
      ],
      "phasePrerequisites": [],
      "positive": "IRQ kurulumu sonrası hata",
      "counterexample": "Canlı DMA erken iade edilir",
      "guestAcceptance": "Hata tanısı ve kaynak sayısı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_rollback_positive",
        "negativeName": "os_runtime_rollback_negative",
        "expectedMarker": "TURKOS/OS/K660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Canlı DMA erken iade edilir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Canlı DMA erken iade edilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k659"
    },
    {
      "id": "K660",
      "number": 660,
      "phase": 1,
      "module": "runtime",
      "feature": "runtime.rollback",
      "stage": "integration",
      "title": "Başlatma geri alma sırası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Başarısız hizmet yalnız edinilen kaynağı bırakır.",
      "action": "Tek ürün Image'ında “Hata tanısı ve kaynak sayısı sabit” kabulünü koştur. scripts/os-acceptance/runtime.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başarısız hizmet yalnız edinilen kaynağı bırakır",
      "source": {
        "target": "kernel/src/runtime/runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/main.rs",
        "existingReferenceSha256": "edb8540958cf54a1af120fcc471b187f8ca11615316e6674d2d4aca22b08e1c0",
        "symbol": "os_runtime_rollback"
      },
      "dependencies": [
        "K659"
      ],
      "phasePrerequisites": [],
      "positive": "IRQ kurulumu sonrası hata",
      "counterexample": "Canlı DMA erken iade edilir",
      "guestAcceptance": "Hata tanısı ve kaynak sayısı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runtime.rs",
        "harness": "scripts/os-acceptance/runtime.mjs",
        "positiveName": "os_runtime_rollback_positive",
        "negativeName": "os_runtime_rollback_negative",
        "expectedMarker": "TURKOS/OS/K660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hata tanısı ve kaynak sayısı sabit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Canlı DMA erken iade edilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k660"
    },
    {
      "id": "K661",
      "number": 661,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.events",
      "stage": "contract",
      "title": "Sıralı tanı kaydı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kayda boot kimliği ve hizmet adı eklenir.",
      "action": "“Sıralı tanı kaydı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kayda boot kimliği ve hizmet adı eklenir. “İki boot ayrı sıra üretir” kabulü ile “Eski log yeni boot sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Kayda boot kimliği ve hizmet adı eklenir",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_events"
      },
      "dependencies": [
        "K660"
      ],
      "phasePrerequisites": [],
      "positive": "İki boot ayrı sıra üretir",
      "counterexample": "Eski log yeni boot sayılır",
      "guestAcceptance": "Bir boot kimliğine bağlı kayıtlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_events_positive",
        "negativeName": "os_diagnostics_events_negative",
        "expectedMarker": "TURKOS/OS/K665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kayda boot kimliği ve hizmet adı eklenir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski log yeni boot sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k661"
    },
    {
      "id": "K662",
      "number": 662,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.events",
      "stage": "implementation",
      "title": "Sıralı tanı kaydı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kayda boot kimliği ve hizmet adı eklenir.",
      "action": "kernel/src/runtime/diagnostics.rs hedefinde os_diagnostics_events yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kayda boot kimliği ve hizmet adı eklenir",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_events"
      },
      "dependencies": [
        "K661"
      ],
      "phasePrerequisites": [],
      "positive": "İki boot ayrı sıra üretir",
      "counterexample": "Eski log yeni boot sayılır",
      "guestAcceptance": "Bir boot kimliğine bağlı kayıtlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_events_positive",
        "negativeName": "os_diagnostics_events_negative",
        "expectedMarker": "TURKOS/OS/K665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki boot ayrı sıra üretir ile Eski log yeni boot sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski log yeni boot sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k662"
    },
    {
      "id": "K663",
      "number": 663,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.events",
      "stage": "positive",
      "title": "Sıralı tanı kaydı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kayda boot kimliği ve hizmet adı eklenir.",
      "action": "os_diagnostics_events_positive testini oluştur: “İki boot ayrı sıra üretir”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kayda boot kimliği ve hizmet adı eklenir",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_events"
      },
      "dependencies": [
        "K662"
      ],
      "phasePrerequisites": [],
      "positive": "İki boot ayrı sıra üretir",
      "counterexample": "Eski log yeni boot sayılır",
      "guestAcceptance": "Bir boot kimliğine bağlı kayıtlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_events_positive",
        "negativeName": "os_diagnostics_events_negative",
        "expectedMarker": "TURKOS/OS/K665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki boot ayrı sıra üretir girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski log yeni boot sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k663"
    },
    {
      "id": "K664",
      "number": 664,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.events",
      "stage": "negative",
      "title": "Sıralı tanı kaydı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kayda boot kimliği ve hizmet adı eklenir.",
      "action": "os_diagnostics_events_negative testini oluştur: “Eski log yeni boot sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kayda boot kimliği ve hizmet adı eklenir",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_events"
      },
      "dependencies": [
        "K663"
      ],
      "phasePrerequisites": [],
      "positive": "İki boot ayrı sıra üretir",
      "counterexample": "Eski log yeni boot sayılır",
      "guestAcceptance": "Bir boot kimliğine bağlı kayıtlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_events_positive",
        "negativeName": "os_diagnostics_events_negative",
        "expectedMarker": "TURKOS/OS/K665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski log yeni boot sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski log yeni boot sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k664"
    },
    {
      "id": "K665",
      "number": 665,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.events",
      "stage": "integration",
      "title": "Sıralı tanı kaydı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kayda boot kimliği ve hizmet adı eklenir.",
      "action": "Tek ürün Image'ında “Bir boot kimliğine bağlı kayıtlar” kabulünü koştur. scripts/os-acceptance/diagnostics.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kayda boot kimliği ve hizmet adı eklenir",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_events"
      },
      "dependencies": [
        "K664"
      ],
      "phasePrerequisites": [],
      "positive": "İki boot ayrı sıra üretir",
      "counterexample": "Eski log yeni boot sayılır",
      "guestAcceptance": "Bir boot kimliğine bağlı kayıtlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_events_positive",
        "negativeName": "os_diagnostics_events_negative",
        "expectedMarker": "TURKOS/OS/K665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir boot kimliğine bağlı kayıtlar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski log yeni boot sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k665"
    },
    {
      "id": "K666",
      "number": 666,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.panic",
      "stage": "contract",
      "title": "Tahsis gerektirmeyen panik · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Panik kilit veya heap beklemez.",
      "action": "“Tahsis gerektirmeyen panik” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Panik kilit veya heap beklemez. “Heap doluyken panik” kabulü ile “Panik UART kilidinde takılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Panik kilit veya heap beklemez",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_panic"
      },
      "dependencies": [
        "K665"
      ],
      "phasePrerequisites": [],
      "positive": "Heap doluyken panik",
      "counterexample": "Panik UART kilidinde takılır",
      "guestAcceptance": "Sınırlı tek fatal kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_panic_positive",
        "negativeName": "os_diagnostics_panic_negative",
        "expectedMarker": "TURKOS/OS/K670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Panik kilit veya heap beklemez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Panik UART kilidinde takılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k666"
    },
    {
      "id": "K667",
      "number": 667,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.panic",
      "stage": "implementation",
      "title": "Tahsis gerektirmeyen panik · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Panik kilit veya heap beklemez.",
      "action": "kernel/src/runtime/diagnostics.rs hedefinde os_diagnostics_panic yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Panik kilit veya heap beklemez",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_panic"
      },
      "dependencies": [
        "K666"
      ],
      "phasePrerequisites": [],
      "positive": "Heap doluyken panik",
      "counterexample": "Panik UART kilidinde takılır",
      "guestAcceptance": "Sınırlı tek fatal kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_panic_positive",
        "negativeName": "os_diagnostics_panic_negative",
        "expectedMarker": "TURKOS/OS/K670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Heap doluyken panik ile Panik UART kilidinde takılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Panik UART kilidinde takılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k667"
    },
    {
      "id": "K668",
      "number": 668,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.panic",
      "stage": "positive",
      "title": "Tahsis gerektirmeyen panik · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Panik kilit veya heap beklemez.",
      "action": "os_diagnostics_panic_positive testini oluştur: “Heap doluyken panik”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Panik kilit veya heap beklemez",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_panic"
      },
      "dependencies": [
        "K667"
      ],
      "phasePrerequisites": [],
      "positive": "Heap doluyken panik",
      "counterexample": "Panik UART kilidinde takılır",
      "guestAcceptance": "Sınırlı tek fatal kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_panic_positive",
        "negativeName": "os_diagnostics_panic_negative",
        "expectedMarker": "TURKOS/OS/K670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Heap doluyken panik girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Panik UART kilidinde takılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k668"
    },
    {
      "id": "K669",
      "number": 669,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.panic",
      "stage": "negative",
      "title": "Tahsis gerektirmeyen panik · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Panik kilit veya heap beklemez.",
      "action": "os_diagnostics_panic_negative testini oluştur: “Panik UART kilidinde takılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Panik kilit veya heap beklemez",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_panic"
      },
      "dependencies": [
        "K668"
      ],
      "phasePrerequisites": [],
      "positive": "Heap doluyken panik",
      "counterexample": "Panik UART kilidinde takılır",
      "guestAcceptance": "Sınırlı tek fatal kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_panic_positive",
        "negativeName": "os_diagnostics_panic_negative",
        "expectedMarker": "TURKOS/OS/K670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Panik UART kilidinde takılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Panik UART kilidinde takılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k669"
    },
    {
      "id": "K670",
      "number": 670,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.panic",
      "stage": "integration",
      "title": "Tahsis gerektirmeyen panik · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Panik kilit veya heap beklemez.",
      "action": "Tek ürün Image'ında “Sınırlı tek fatal kayıt” kabulünü koştur. scripts/os-acceptance/diagnostics.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Panik kilit veya heap beklemez",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_panic"
      },
      "dependencies": [
        "K669"
      ],
      "phasePrerequisites": [],
      "positive": "Heap doluyken panik",
      "counterexample": "Panik UART kilidinde takılır",
      "guestAcceptance": "Sınırlı tek fatal kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_panic_positive",
        "negativeName": "os_diagnostics_panic_negative",
        "expectedMarker": "TURKOS/OS/K670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sınırlı tek fatal kayıt; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Panik UART kilidinde takılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k670"
    },
    {
      "id": "K671",
      "number": 671,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.fault",
      "stage": "contract",
      "title": "ESR FAR bağlam raporu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: FAR yalnız geçerli fault türünde yazılır.",
      "action": "“ESR FAR bağlam raporu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: FAR yalnız geçerli fault türünde yazılır. “EL0 translation fault” kabulü ile “Geçersiz FAR sır diye basılır” reddini aynı sözleşmeye bağla.",
      "invariant": "FAR yalnız geçerli fault türünde yazılır",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_fault"
      },
      "dependencies": [
        "K670"
      ],
      "phasePrerequisites": [],
      "positive": "EL0 translation fault",
      "counterexample": "Geçersiz FAR sır diye basılır",
      "guestAcceptance": "Hatalı süreç ile kernel fatal ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_fault_positive",
        "negativeName": "os_diagnostics_fault_negative",
        "expectedMarker": "TURKOS/OS/K675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu FAR yalnız geçerli fault türünde yazılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Geçersiz FAR sır diye basılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k671"
    },
    {
      "id": "K672",
      "number": 672,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.fault",
      "stage": "implementation",
      "title": "ESR FAR bağlam raporu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: FAR yalnız geçerli fault türünde yazılır.",
      "action": "kernel/src/runtime/diagnostics.rs hedefinde os_diagnostics_fault yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "FAR yalnız geçerli fault türünde yazılır",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_fault"
      },
      "dependencies": [
        "K671"
      ],
      "phasePrerequisites": [],
      "positive": "EL0 translation fault",
      "counterexample": "Geçersiz FAR sır diye basılır",
      "guestAcceptance": "Hatalı süreç ile kernel fatal ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_fault_positive",
        "negativeName": "os_diagnostics_fault_negative",
        "expectedMarker": "TURKOS/OS/K675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. EL0 translation fault ile Geçersiz FAR sır diye basılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Geçersiz FAR sır diye basılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k672"
    },
    {
      "id": "K673",
      "number": 673,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.fault",
      "stage": "positive",
      "title": "ESR FAR bağlam raporu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: FAR yalnız geçerli fault türünde yazılır.",
      "action": "os_diagnostics_fault_positive testini oluştur: “EL0 translation fault”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "FAR yalnız geçerli fault türünde yazılır",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_fault"
      },
      "dependencies": [
        "K672"
      ],
      "phasePrerequisites": [],
      "positive": "EL0 translation fault",
      "counterexample": "Geçersiz FAR sır diye basılır",
      "guestAcceptance": "Hatalı süreç ile kernel fatal ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_fault_positive",
        "negativeName": "os_diagnostics_fault_negative",
        "expectedMarker": "TURKOS/OS/K675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; EL0 translation fault girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Geçersiz FAR sır diye basılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k673"
    },
    {
      "id": "K674",
      "number": 674,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.fault",
      "stage": "negative",
      "title": "ESR FAR bağlam raporu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: FAR yalnız geçerli fault türünde yazılır.",
      "action": "os_diagnostics_fault_negative testini oluştur: “Geçersiz FAR sır diye basılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "FAR yalnız geçerli fault türünde yazılır",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_fault"
      },
      "dependencies": [
        "K673"
      ],
      "phasePrerequisites": [],
      "positive": "EL0 translation fault",
      "counterexample": "Geçersiz FAR sır diye basılır",
      "guestAcceptance": "Hatalı süreç ile kernel fatal ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_fault_positive",
        "negativeName": "os_diagnostics_fault_negative",
        "expectedMarker": "TURKOS/OS/K675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Geçersiz FAR sır diye basılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Geçersiz FAR sır diye basılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k674"
    },
    {
      "id": "K675",
      "number": 675,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.fault",
      "stage": "integration",
      "title": "ESR FAR bağlam raporu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: FAR yalnız geçerli fault türünde yazılır.",
      "action": "Tek ürün Image'ında “Hatalı süreç ile kernel fatal ayrılır” kabulünü koştur. scripts/os-acceptance/diagnostics.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "FAR yalnız geçerli fault türünde yazılır",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_fault"
      },
      "dependencies": [
        "K674"
      ],
      "phasePrerequisites": [],
      "positive": "EL0 translation fault",
      "counterexample": "Geçersiz FAR sır diye basılır",
      "guestAcceptance": "Hatalı süreç ile kernel fatal ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_fault_positive",
        "negativeName": "os_diagnostics_fault_negative",
        "expectedMarker": "TURKOS/OS/K675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hatalı süreç ile kernel fatal ayrılır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Geçersiz FAR sır diye basılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k675"
    },
    {
      "id": "K676",
      "number": 676,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.redaction",
      "stage": "contract",
      "title": "Günlük bilgi sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kullanıcı sırları ve host yolları basılmaz.",
      "action": "“Günlük bilgi sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kullanıcı sırları ve host yolları basılmaz. “Adres türü sınırlı kayıt” kabulü ile “Anahtar tamponu loga eklenir” reddini aynı sözleşmeye bağla.",
      "invariant": "Kullanıcı sırları ve host yolları basılmaz",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_redaction"
      },
      "dependencies": [
        "K675"
      ],
      "phasePrerequisites": [],
      "positive": "Adres türü sınırlı kayıt",
      "counterexample": "Anahtar tamponu loga eklenir",
      "guestAcceptance": "Sır kanaryası seri çıktıda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_redaction_positive",
        "negativeName": "os_diagnostics_redaction_negative",
        "expectedMarker": "TURKOS/OS/K680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kullanıcı sırları ve host yolları basılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Anahtar tamponu loga eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k676"
    },
    {
      "id": "K677",
      "number": 677,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.redaction",
      "stage": "implementation",
      "title": "Günlük bilgi sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kullanıcı sırları ve host yolları basılmaz.",
      "action": "kernel/src/runtime/diagnostics.rs hedefinde os_diagnostics_redaction yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kullanıcı sırları ve host yolları basılmaz",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_redaction"
      },
      "dependencies": [
        "K676"
      ],
      "phasePrerequisites": [],
      "positive": "Adres türü sınırlı kayıt",
      "counterexample": "Anahtar tamponu loga eklenir",
      "guestAcceptance": "Sır kanaryası seri çıktıda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_redaction_positive",
        "negativeName": "os_diagnostics_redaction_negative",
        "expectedMarker": "TURKOS/OS/K680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Adres türü sınırlı kayıt ile Anahtar tamponu loga eklenir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Anahtar tamponu loga eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k677"
    },
    {
      "id": "K678",
      "number": 678,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.redaction",
      "stage": "positive",
      "title": "Günlük bilgi sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kullanıcı sırları ve host yolları basılmaz.",
      "action": "os_diagnostics_redaction_positive testini oluştur: “Adres türü sınırlı kayıt”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kullanıcı sırları ve host yolları basılmaz",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_redaction"
      },
      "dependencies": [
        "K677"
      ],
      "phasePrerequisites": [],
      "positive": "Adres türü sınırlı kayıt",
      "counterexample": "Anahtar tamponu loga eklenir",
      "guestAcceptance": "Sır kanaryası seri çıktıda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_redaction_positive",
        "negativeName": "os_diagnostics_redaction_negative",
        "expectedMarker": "TURKOS/OS/K680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Adres türü sınırlı kayıt girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Anahtar tamponu loga eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k678"
    },
    {
      "id": "K679",
      "number": 679,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.redaction",
      "stage": "negative",
      "title": "Günlük bilgi sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kullanıcı sırları ve host yolları basılmaz.",
      "action": "os_diagnostics_redaction_negative testini oluştur: “Anahtar tamponu loga eklenir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kullanıcı sırları ve host yolları basılmaz",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_redaction"
      },
      "dependencies": [
        "K678"
      ],
      "phasePrerequisites": [],
      "positive": "Adres türü sınırlı kayıt",
      "counterexample": "Anahtar tamponu loga eklenir",
      "guestAcceptance": "Sır kanaryası seri çıktıda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_redaction_positive",
        "negativeName": "os_diagnostics_redaction_negative",
        "expectedMarker": "TURKOS/OS/K680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Anahtar tamponu loga eklenir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Anahtar tamponu loga eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k679"
    },
    {
      "id": "K680",
      "number": 680,
      "phase": 1,
      "module": "diagnostics",
      "feature": "diagnostics.redaction",
      "stage": "integration",
      "title": "Günlük bilgi sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kullanıcı sırları ve host yolları basılmaz.",
      "action": "Tek ürün Image'ında “Sır kanaryası seri çıktıda bulunmaz” kabulünü koştur. scripts/os-acceptance/diagnostics.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kullanıcı sırları ve host yolları basılmaz",
      "source": {
        "target": "kernel/src/runtime/diagnostics.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_diagnostics_redaction"
      },
      "dependencies": [
        "K679"
      ],
      "phasePrerequisites": [],
      "positive": "Adres türü sınırlı kayıt",
      "counterexample": "Anahtar tamponu loga eklenir",
      "guestAcceptance": "Sır kanaryası seri çıktıda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/diagnostics.rs",
        "harness": "scripts/os-acceptance/diagnostics.mjs",
        "positiveName": "os_diagnostics_redaction_positive",
        "negativeName": "os_diagnostics_redaction_negative",
        "expectedMarker": "TURKOS/OS/K680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sır kanaryası seri çıktıda bulunmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Anahtar tamponu loga eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k680"
    },
    {
      "id": "K681",
      "number": 681,
      "phase": 1,
      "module": "platform",
      "feature": "platform.tree",
      "stage": "contract",
      "title": "Sınırlı DTB yürütme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Düğüm sayısı derinlik ve blob boyu sınırlıdır.",
      "action": "“Sınırlı DTB yürütme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Düğüm sayısı derinlik ve blob boyu sınırlıdır. “Bilinen virt cihaz ağacı” kabulü ile “Döngülü veya taşan phandle” reddini aynı sözleşmeye bağla.",
      "invariant": "Düğüm sayısı derinlik ve blob boyu sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_tree"
      },
      "dependencies": [
        "K680"
      ],
      "phasePrerequisites": [],
      "positive": "Bilinen virt cihaz ağacı",
      "counterexample": "Döngülü veya taşan phandle",
      "guestAcceptance": "Keşif tamamlanır veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_tree_positive",
        "negativeName": "os_platform_tree_negative",
        "expectedMarker": "TURKOS/OS/K685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Düğüm sayısı derinlik ve blob boyu sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Döngülü veya taşan phandle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k681"
    },
    {
      "id": "K682",
      "number": 682,
      "phase": 1,
      "module": "platform",
      "feature": "platform.tree",
      "stage": "implementation",
      "title": "Sınırlı DTB yürütme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Düğüm sayısı derinlik ve blob boyu sınırlıdır.",
      "action": "kernel/src/arch/aarch64/platform.rs hedefinde os_platform_tree yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Düğüm sayısı derinlik ve blob boyu sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_tree"
      },
      "dependencies": [
        "K681"
      ],
      "phasePrerequisites": [],
      "positive": "Bilinen virt cihaz ağacı",
      "counterexample": "Döngülü veya taşan phandle",
      "guestAcceptance": "Keşif tamamlanır veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_tree_positive",
        "negativeName": "os_platform_tree_negative",
        "expectedMarker": "TURKOS/OS/K685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen virt cihaz ağacı ile Döngülü veya taşan phandle ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Döngülü veya taşan phandle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k682"
    },
    {
      "id": "K683",
      "number": 683,
      "phase": 1,
      "module": "platform",
      "feature": "platform.tree",
      "stage": "positive",
      "title": "Sınırlı DTB yürütme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Düğüm sayısı derinlik ve blob boyu sınırlıdır.",
      "action": "os_platform_tree_positive testini oluştur: “Bilinen virt cihaz ağacı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Düğüm sayısı derinlik ve blob boyu sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_tree"
      },
      "dependencies": [
        "K682"
      ],
      "phasePrerequisites": [],
      "positive": "Bilinen virt cihaz ağacı",
      "counterexample": "Döngülü veya taşan phandle",
      "guestAcceptance": "Keşif tamamlanır veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_tree_positive",
        "negativeName": "os_platform_tree_negative",
        "expectedMarker": "TURKOS/OS/K685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen virt cihaz ağacı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Döngülü veya taşan phandle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k683"
    },
    {
      "id": "K684",
      "number": 684,
      "phase": 1,
      "module": "platform",
      "feature": "platform.tree",
      "stage": "negative",
      "title": "Sınırlı DTB yürütme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Düğüm sayısı derinlik ve blob boyu sınırlıdır.",
      "action": "os_platform_tree_negative testini oluştur: “Döngülü veya taşan phandle”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Düğüm sayısı derinlik ve blob boyu sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_tree"
      },
      "dependencies": [
        "K683"
      ],
      "phasePrerequisites": [],
      "positive": "Bilinen virt cihaz ağacı",
      "counterexample": "Döngülü veya taşan phandle",
      "guestAcceptance": "Keşif tamamlanır veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_tree_positive",
        "negativeName": "os_platform_tree_negative",
        "expectedMarker": "TURKOS/OS/K685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Döngülü veya taşan phandle karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Döngülü veya taşan phandle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k684"
    },
    {
      "id": "K685",
      "number": 685,
      "phase": 1,
      "module": "platform",
      "feature": "platform.tree",
      "stage": "integration",
      "title": "Sınırlı DTB yürütme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Düğüm sayısı derinlik ve blob boyu sınırlıdır.",
      "action": "Tek ürün Image'ında “Keşif tamamlanır veya açık ret” kabulünü koştur. scripts/os-acceptance/platform.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Düğüm sayısı derinlik ve blob boyu sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_tree"
      },
      "dependencies": [
        "K684"
      ],
      "phasePrerequisites": [],
      "positive": "Bilinen virt cihaz ağacı",
      "counterexample": "Döngülü veya taşan phandle",
      "guestAcceptance": "Keşif tamamlanır veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_tree_positive",
        "negativeName": "os_platform_tree_negative",
        "expectedMarker": "TURKOS/OS/K685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Keşif tamamlanır veya açık ret; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Döngülü veya taşan phandle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k685"
    },
    {
      "id": "K686",
      "number": 686,
      "phase": 1,
      "module": "platform",
      "feature": "platform.devices",
      "stage": "contract",
      "title": "UART GIC timer tanımları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Eksik aygıt sabit adrese varsayılmaz.",
      "action": "“UART GIC timer tanımları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Eksik aygıt sabit adrese varsayılmaz. “PL011 GICv3 timer tuple” kabulü ile “GICv2 veya eksik UART” reddini aynı sözleşmeye bağla.",
      "invariant": "Eksik aygıt sabit adrese varsayılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_devices"
      },
      "dependencies": [
        "K685"
      ],
      "phasePrerequisites": [],
      "positive": "PL011 GICv3 timer tuple",
      "counterexample": "GICv2 veya eksik UART",
      "guestAcceptance": "Her aygıt adresi DTB kaydına bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_devices_positive",
        "negativeName": "os_platform_devices_negative",
        "expectedMarker": "TURKOS/OS/K690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Eksik aygıt sabit adrese varsayılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“GICv2 veya eksik UART” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k686"
    },
    {
      "id": "K687",
      "number": 687,
      "phase": 1,
      "module": "platform",
      "feature": "platform.devices",
      "stage": "implementation",
      "title": "UART GIC timer tanımları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Eksik aygıt sabit adrese varsayılmaz.",
      "action": "kernel/src/arch/aarch64/platform.rs hedefinde os_platform_devices yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Eksik aygıt sabit adrese varsayılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_devices"
      },
      "dependencies": [
        "K686"
      ],
      "phasePrerequisites": [],
      "positive": "PL011 GICv3 timer tuple",
      "counterexample": "GICv2 veya eksik UART",
      "guestAcceptance": "Her aygıt adresi DTB kaydına bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_devices_positive",
        "negativeName": "os_platform_devices_negative",
        "expectedMarker": "TURKOS/OS/K690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. PL011 GICv3 timer tuple ile GICv2 veya eksik UART ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“GICv2 veya eksik UART” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k687"
    },
    {
      "id": "K688",
      "number": 688,
      "phase": 1,
      "module": "platform",
      "feature": "platform.devices",
      "stage": "positive",
      "title": "UART GIC timer tanımları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Eksik aygıt sabit adrese varsayılmaz.",
      "action": "os_platform_devices_positive testini oluştur: “PL011 GICv3 timer tuple”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Eksik aygıt sabit adrese varsayılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_devices"
      },
      "dependencies": [
        "K687"
      ],
      "phasePrerequisites": [],
      "positive": "PL011 GICv3 timer tuple",
      "counterexample": "GICv2 veya eksik UART",
      "guestAcceptance": "Her aygıt adresi DTB kaydına bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_devices_positive",
        "negativeName": "os_platform_devices_negative",
        "expectedMarker": "TURKOS/OS/K690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; PL011 GICv3 timer tuple girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“GICv2 veya eksik UART” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k688"
    },
    {
      "id": "K689",
      "number": 689,
      "phase": 1,
      "module": "platform",
      "feature": "platform.devices",
      "stage": "negative",
      "title": "UART GIC timer tanımları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Eksik aygıt sabit adrese varsayılmaz.",
      "action": "os_platform_devices_negative testini oluştur: “GICv2 veya eksik UART”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Eksik aygıt sabit adrese varsayılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_devices"
      },
      "dependencies": [
        "K688"
      ],
      "phasePrerequisites": [],
      "positive": "PL011 GICv3 timer tuple",
      "counterexample": "GICv2 veya eksik UART",
      "guestAcceptance": "Her aygıt adresi DTB kaydına bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_devices_positive",
        "negativeName": "os_platform_devices_negative",
        "expectedMarker": "TURKOS/OS/K690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "GICv2 veya eksik UART karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“GICv2 veya eksik UART” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k689"
    },
    {
      "id": "K690",
      "number": 690,
      "phase": 1,
      "module": "platform",
      "feature": "platform.devices",
      "stage": "integration",
      "title": "UART GIC timer tanımları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Eksik aygıt sabit adrese varsayılmaz.",
      "action": "Tek ürün Image'ında “Her aygıt adresi DTB kaydına bağlı” kabulünü koştur. scripts/os-acceptance/platform.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Eksik aygıt sabit adrese varsayılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_devices"
      },
      "dependencies": [
        "K689"
      ],
      "phasePrerequisites": [],
      "positive": "PL011 GICv3 timer tuple",
      "counterexample": "GICv2 veya eksik UART",
      "guestAcceptance": "Her aygıt adresi DTB kaydına bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_devices_positive",
        "negativeName": "os_platform_devices_negative",
        "expectedMarker": "TURKOS/OS/K690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her aygıt adresi DTB kaydına bağlı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“GICv2 veya eksik UART” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k690"
    },
    {
      "id": "K691",
      "number": 691,
      "phase": 1,
      "module": "platform",
      "feature": "platform.ram",
      "stage": "contract",
      "title": "Çoklu RAM bankası modeli · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bankalar rezervasyonları aşamaz.",
      "action": "“Çoklu RAM bankası modeli” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bankalar rezervasyonları aşamaz. “İki ayrık RAM bankası” kabulü ile “Bankalar örtüşür” reddini aynı sözleşmeye bağla.",
      "invariant": "Bankalar rezervasyonları aşamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_ram"
      },
      "dependencies": [
        "K690"
      ],
      "phasePrerequisites": [],
      "positive": "İki ayrık RAM bankası",
      "counterexample": "Bankalar örtüşür",
      "guestAcceptance": "Tahsis yalnız yetkili bankalardan",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_ram_positive",
        "negativeName": "os_platform_ram_negative",
        "expectedMarker": "TURKOS/OS/K695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bankalar rezervasyonları aşamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bankalar örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k691"
    },
    {
      "id": "K692",
      "number": 692,
      "phase": 1,
      "module": "platform",
      "feature": "platform.ram",
      "stage": "implementation",
      "title": "Çoklu RAM bankası modeli · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bankalar rezervasyonları aşamaz.",
      "action": "kernel/src/arch/aarch64/platform.rs hedefinde os_platform_ram yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bankalar rezervasyonları aşamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_ram"
      },
      "dependencies": [
        "K691"
      ],
      "phasePrerequisites": [],
      "positive": "İki ayrık RAM bankası",
      "counterexample": "Bankalar örtüşür",
      "guestAcceptance": "Tahsis yalnız yetkili bankalardan",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_ram_positive",
        "negativeName": "os_platform_ram_negative",
        "expectedMarker": "TURKOS/OS/K695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki ayrık RAM bankası ile Bankalar örtüşür ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bankalar örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k692"
    },
    {
      "id": "K693",
      "number": 693,
      "phase": 1,
      "module": "platform",
      "feature": "platform.ram",
      "stage": "positive",
      "title": "Çoklu RAM bankası modeli · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bankalar rezervasyonları aşamaz.",
      "action": "os_platform_ram_positive testini oluştur: “İki ayrık RAM bankası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bankalar rezervasyonları aşamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_ram"
      },
      "dependencies": [
        "K692"
      ],
      "phasePrerequisites": [],
      "positive": "İki ayrık RAM bankası",
      "counterexample": "Bankalar örtüşür",
      "guestAcceptance": "Tahsis yalnız yetkili bankalardan",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_ram_positive",
        "negativeName": "os_platform_ram_negative",
        "expectedMarker": "TURKOS/OS/K695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki ayrık RAM bankası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bankalar örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k693"
    },
    {
      "id": "K694",
      "number": 694,
      "phase": 1,
      "module": "platform",
      "feature": "platform.ram",
      "stage": "negative",
      "title": "Çoklu RAM bankası modeli · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bankalar rezervasyonları aşamaz.",
      "action": "os_platform_ram_negative testini oluştur: “Bankalar örtüşür”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bankalar rezervasyonları aşamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_ram"
      },
      "dependencies": [
        "K693"
      ],
      "phasePrerequisites": [],
      "positive": "İki ayrık RAM bankası",
      "counterexample": "Bankalar örtüşür",
      "guestAcceptance": "Tahsis yalnız yetkili bankalardan",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_ram_positive",
        "negativeName": "os_platform_ram_negative",
        "expectedMarker": "TURKOS/OS/K695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bankalar örtüşür karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bankalar örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k694"
    },
    {
      "id": "K695",
      "number": 695,
      "phase": 1,
      "module": "platform",
      "feature": "platform.ram",
      "stage": "integration",
      "title": "Çoklu RAM bankası modeli · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Bankalar rezervasyonları aşamaz.",
      "action": "Tek ürün Image'ında “Tahsis yalnız yetkili bankalardan” kabulünü koştur. scripts/os-acceptance/platform.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bankalar rezervasyonları aşamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_ram"
      },
      "dependencies": [
        "K694"
      ],
      "phasePrerequisites": [],
      "positive": "İki ayrık RAM bankası",
      "counterexample": "Bankalar örtüşür",
      "guestAcceptance": "Tahsis yalnız yetkili bankalardan",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_ram_positive",
        "negativeName": "os_platform_ram_negative",
        "expectedMarker": "TURKOS/OS/K695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tahsis yalnız yetkili bankalardan; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bankalar örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k695"
    },
    {
      "id": "K696",
      "number": 696,
      "phase": 1,
      "module": "platform",
      "feature": "platform.features",
      "stage": "contract",
      "title": "CPU yetenek matrisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kod gerektirmediği CPU özelliğini varsaymaz.",
      "action": "“CPU yetenek matrisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kod gerektirmediği CPU özelliğini varsaymaz. “M1 ve M5 konuk profilleri” kabulü ile “Desteksiz özellik biti” reddini aynı sözleşmeye bağla.",
      "invariant": "Kod gerektirmediği CPU özelliğini varsaymaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_features"
      },
      "dependencies": [
        "K695"
      ],
      "phasePrerequisites": [],
      "positive": "M1 ve M5 konuk profilleri",
      "counterexample": "Desteksiz özellik biti",
      "guestAcceptance": "Eksik özellik güvenli ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_features_positive",
        "negativeName": "os_platform_features_negative",
        "expectedMarker": "TURKOS/OS/K700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kod gerektirmediği CPU özelliğini varsaymaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Desteksiz özellik biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k696"
    },
    {
      "id": "K697",
      "number": 697,
      "phase": 1,
      "module": "platform",
      "feature": "platform.features",
      "stage": "implementation",
      "title": "CPU yetenek matrisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kod gerektirmediği CPU özelliğini varsaymaz.",
      "action": "kernel/src/arch/aarch64/platform.rs hedefinde os_platform_features yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kod gerektirmediği CPU özelliğini varsaymaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_features"
      },
      "dependencies": [
        "K696"
      ],
      "phasePrerequisites": [],
      "positive": "M1 ve M5 konuk profilleri",
      "counterexample": "Desteksiz özellik biti",
      "guestAcceptance": "Eksik özellik güvenli ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_features_positive",
        "negativeName": "os_platform_features_negative",
        "expectedMarker": "TURKOS/OS/K700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. M1 ve M5 konuk profilleri ile Desteksiz özellik biti ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Desteksiz özellik biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k697"
    },
    {
      "id": "K698",
      "number": 698,
      "phase": 1,
      "module": "platform",
      "feature": "platform.features",
      "stage": "positive",
      "title": "CPU yetenek matrisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kod gerektirmediği CPU özelliğini varsaymaz.",
      "action": "os_platform_features_positive testini oluştur: “M1 ve M5 konuk profilleri”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kod gerektirmediği CPU özelliğini varsaymaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_features"
      },
      "dependencies": [
        "K697"
      ],
      "phasePrerequisites": [],
      "positive": "M1 ve M5 konuk profilleri",
      "counterexample": "Desteksiz özellik biti",
      "guestAcceptance": "Eksik özellik güvenli ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_features_positive",
        "negativeName": "os_platform_features_negative",
        "expectedMarker": "TURKOS/OS/K700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; M1 ve M5 konuk profilleri girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Desteksiz özellik biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k698"
    },
    {
      "id": "K699",
      "number": 699,
      "phase": 1,
      "module": "platform",
      "feature": "platform.features",
      "stage": "negative",
      "title": "CPU yetenek matrisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kod gerektirmediği CPU özelliğini varsaymaz.",
      "action": "os_platform_features_negative testini oluştur: “Desteksiz özellik biti”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kod gerektirmediği CPU özelliğini varsaymaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_features"
      },
      "dependencies": [
        "K698"
      ],
      "phasePrerequisites": [],
      "positive": "M1 ve M5 konuk profilleri",
      "counterexample": "Desteksiz özellik biti",
      "guestAcceptance": "Eksik özellik güvenli ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_features_positive",
        "negativeName": "os_platform_features_negative",
        "expectedMarker": "TURKOS/OS/K700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Desteksiz özellik biti karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Desteksiz özellik biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k699"
    },
    {
      "id": "K700",
      "number": 700,
      "phase": 1,
      "module": "platform",
      "feature": "platform.features",
      "stage": "integration",
      "title": "CPU yetenek matrisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Ayrı probe imajlarının başarıları tek ürün açılışı anlamına gelmez. Mevcut Rust çekirdeği silinmeden deney ve ürün yolları ayrılır. Bu hamlenin koruduğu değişmez: Kod gerektirmediği CPU özelliğini varsaymaz.",
      "action": "Tek ürün Image'ında “Eksik özellik güvenli ret verir” kabulünü koştur. scripts/os-acceptance/platform.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kod gerektirmediği CPU özelliğini varsaymaz",
      "source": {
        "target": "kernel/src/arch/aarch64/platform.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_platform_features"
      },
      "dependencies": [
        "K699"
      ],
      "phasePrerequisites": [],
      "positive": "M1 ve M5 konuk profilleri",
      "counterexample": "Desteksiz özellik biti",
      "guestAcceptance": "Eksik özellik güvenli ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/platform.rs",
        "harness": "scripts/os-acceptance/platform.mjs",
        "positiveName": "os_platform_features_positive",
        "negativeName": "os_platform_features_negative",
        "expectedMarker": "TURKOS/OS/K700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik özellik güvenli ret verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Desteksiz özellik biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-01#k700"
    },
    {
      "id": "K701",
      "number": 701,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.classify",
      "stage": "contract",
      "title": "Firmware RAM sınıfları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız açık devralınan RAM tahsis edilir.",
      "action": "“Firmware RAM sınıfları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yalnız açık devralınan RAM tahsis edilir. “Conventional ile DTB kesişimi” kabulü ile “Bilinmeyen firmware türü” reddini aynı sözleşmeye bağla.",
      "invariant": "Yalnız açık devralınan RAM tahsis edilir",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_classify"
      },
      "dependencies": [],
      "phasePrerequisites": [
        1
      ],
      "positive": "Conventional ile DTB kesişimi",
      "counterexample": "Bilinmeyen firmware türü",
      "guestAcceptance": "Yabancı fiziksel adres tahsis edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_classify_positive",
        "negativeName": "os_frame_authority_classify_negative",
        "expectedMarker": "TURKOS/OS/K705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yalnız açık devralınan RAM tahsis edilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bilinmeyen firmware türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k701"
    },
    {
      "id": "K702",
      "number": 702,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.classify",
      "stage": "implementation",
      "title": "Firmware RAM sınıfları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız açık devralınan RAM tahsis edilir.",
      "action": "kernel/src/runtime/frame_authority.rs hedefinde os_frame_authority_classify yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yalnız açık devralınan RAM tahsis edilir",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_classify"
      },
      "dependencies": [
        "K701"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Conventional ile DTB kesişimi",
      "counterexample": "Bilinmeyen firmware türü",
      "guestAcceptance": "Yabancı fiziksel adres tahsis edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_classify_positive",
        "negativeName": "os_frame_authority_classify_negative",
        "expectedMarker": "TURKOS/OS/K705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Conventional ile DTB kesişimi ile Bilinmeyen firmware türü ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bilinmeyen firmware türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k702"
    },
    {
      "id": "K703",
      "number": 703,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.classify",
      "stage": "positive",
      "title": "Firmware RAM sınıfları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız açık devralınan RAM tahsis edilir.",
      "action": "os_frame_authority_classify_positive testini oluştur: “Conventional ile DTB kesişimi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yalnız açık devralınan RAM tahsis edilir",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_classify"
      },
      "dependencies": [
        "K702"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Conventional ile DTB kesişimi",
      "counterexample": "Bilinmeyen firmware türü",
      "guestAcceptance": "Yabancı fiziksel adres tahsis edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_classify_positive",
        "negativeName": "os_frame_authority_classify_negative",
        "expectedMarker": "TURKOS/OS/K705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Conventional ile DTB kesişimi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bilinmeyen firmware türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k703"
    },
    {
      "id": "K704",
      "number": 704,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.classify",
      "stage": "negative",
      "title": "Firmware RAM sınıfları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız açık devralınan RAM tahsis edilir.",
      "action": "os_frame_authority_classify_negative testini oluştur: “Bilinmeyen firmware türü”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yalnız açık devralınan RAM tahsis edilir",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_classify"
      },
      "dependencies": [
        "K703"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Conventional ile DTB kesişimi",
      "counterexample": "Bilinmeyen firmware türü",
      "guestAcceptance": "Yabancı fiziksel adres tahsis edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_classify_positive",
        "negativeName": "os_frame_authority_classify_negative",
        "expectedMarker": "TURKOS/OS/K705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bilinmeyen firmware türü karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bilinmeyen firmware türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k704"
    },
    {
      "id": "K705",
      "number": 705,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.classify",
      "stage": "integration",
      "title": "Firmware RAM sınıfları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız açık devralınan RAM tahsis edilir.",
      "action": "Tek ürün Image'ında “Yabancı fiziksel adres tahsis edilmez” kabulünü koştur. scripts/os-acceptance/frame_authority.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yalnız açık devralınan RAM tahsis edilir",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_classify"
      },
      "dependencies": [
        "K704"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Conventional ile DTB kesişimi",
      "counterexample": "Bilinmeyen firmware türü",
      "guestAcceptance": "Yabancı fiziksel adres tahsis edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_classify_positive",
        "negativeName": "os_frame_authority_classify_negative",
        "expectedMarker": "TURKOS/OS/K705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı fiziksel adres tahsis edilmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bilinmeyen firmware türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k705"
    },
    {
      "id": "K706",
      "number": 706,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.reserve",
      "stage": "contract",
      "title": "Dinamik rezervasyon API · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Canlı tahsis üstüne rezervasyon kurulmaz.",
      "action": "“Dinamik rezervasyon API” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Canlı tahsis üstüne rezervasyon kurulmaz. “Boş aralığı rezervasyon” kabulü ile “Etkin çerçeveyi rezervasyon” reddini aynı sözleşmeye bağla.",
      "invariant": "Canlı tahsis üstüne rezervasyon kurulmaz",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_reserve"
      },
      "dependencies": [
        "K705"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Boş aralığı rezervasyon",
      "counterexample": "Etkin çerçeveyi rezervasyon",
      "guestAcceptance": "Önce ve sonra hesap aynı toplamı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_reserve_positive",
        "negativeName": "os_frame_authority_reserve_negative",
        "expectedMarker": "TURKOS/OS/K710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Canlı tahsis üstüne rezervasyon kurulmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Etkin çerçeveyi rezervasyon” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k706"
    },
    {
      "id": "K707",
      "number": 707,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.reserve",
      "stage": "implementation",
      "title": "Dinamik rezervasyon API · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Canlı tahsis üstüne rezervasyon kurulmaz.",
      "action": "kernel/src/runtime/frame_authority.rs hedefinde os_frame_authority_reserve yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Canlı tahsis üstüne rezervasyon kurulmaz",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_reserve"
      },
      "dependencies": [
        "K706"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Boş aralığı rezervasyon",
      "counterexample": "Etkin çerçeveyi rezervasyon",
      "guestAcceptance": "Önce ve sonra hesap aynı toplamı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_reserve_positive",
        "negativeName": "os_frame_authority_reserve_negative",
        "expectedMarker": "TURKOS/OS/K710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş aralığı rezervasyon ile Etkin çerçeveyi rezervasyon ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Etkin çerçeveyi rezervasyon” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k707"
    },
    {
      "id": "K708",
      "number": 708,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.reserve",
      "stage": "positive",
      "title": "Dinamik rezervasyon API · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Canlı tahsis üstüne rezervasyon kurulmaz.",
      "action": "os_frame_authority_reserve_positive testini oluştur: “Boş aralığı rezervasyon”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Canlı tahsis üstüne rezervasyon kurulmaz",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_reserve"
      },
      "dependencies": [
        "K707"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Boş aralığı rezervasyon",
      "counterexample": "Etkin çerçeveyi rezervasyon",
      "guestAcceptance": "Önce ve sonra hesap aynı toplamı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_reserve_positive",
        "negativeName": "os_frame_authority_reserve_negative",
        "expectedMarker": "TURKOS/OS/K710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş aralığı rezervasyon girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Etkin çerçeveyi rezervasyon” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k708"
    },
    {
      "id": "K709",
      "number": 709,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.reserve",
      "stage": "negative",
      "title": "Dinamik rezervasyon API · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Canlı tahsis üstüne rezervasyon kurulmaz.",
      "action": "os_frame_authority_reserve_negative testini oluştur: “Etkin çerçeveyi rezervasyon”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Canlı tahsis üstüne rezervasyon kurulmaz",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_reserve"
      },
      "dependencies": [
        "K708"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Boş aralığı rezervasyon",
      "counterexample": "Etkin çerçeveyi rezervasyon",
      "guestAcceptance": "Önce ve sonra hesap aynı toplamı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_reserve_positive",
        "negativeName": "os_frame_authority_reserve_negative",
        "expectedMarker": "TURKOS/OS/K710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Etkin çerçeveyi rezervasyon karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Etkin çerçeveyi rezervasyon” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k709"
    },
    {
      "id": "K710",
      "number": 710,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.reserve",
      "stage": "integration",
      "title": "Dinamik rezervasyon API · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Canlı tahsis üstüne rezervasyon kurulmaz.",
      "action": "Tek ürün Image'ında “Önce ve sonra hesap aynı toplamı verir” kabulünü koştur. scripts/os-acceptance/frame_authority.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Canlı tahsis üstüne rezervasyon kurulmaz",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_reserve"
      },
      "dependencies": [
        "K709"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Boş aralığı rezervasyon",
      "counterexample": "Etkin çerçeveyi rezervasyon",
      "guestAcceptance": "Önce ve sonra hesap aynı toplamı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_reserve_positive",
        "negativeName": "os_frame_authority_reserve_negative",
        "expectedMarker": "TURKOS/OS/K710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Önce ve sonra hesap aynı toplamı verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Etkin çerçeveyi rezervasyon” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k710"
    },
    {
      "id": "K711",
      "number": 711,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.endpoints",
      "stage": "contract",
      "title": "Bankaların uç sayfaları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İlk ve son tam sayfa kanaryası korunur.",
      "action": "“Bankaların uç sayfaları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İlk ve son tam sayfa kanaryası korunur. “256 512 1024 MiB uçları” kabulü ile “Bankanın yarım son sayfası” reddini aynı sözleşmeye bağla.",
      "invariant": "İlk ve son tam sayfa kanaryası korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_endpoints"
      },
      "dependencies": [
        "K710"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "256 512 1024 MiB uçları",
      "counterexample": "Bankanın yarım son sayfası",
      "guestAcceptance": "Uç kanaryaları geri okumada eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_endpoints_positive",
        "negativeName": "os_frame_authority_endpoints_negative",
        "expectedMarker": "TURKOS/OS/K715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İlk ve son tam sayfa kanaryası korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bankanın yarım son sayfası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k711"
    },
    {
      "id": "K712",
      "number": 712,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.endpoints",
      "stage": "implementation",
      "title": "Bankaların uç sayfaları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İlk ve son tam sayfa kanaryası korunur.",
      "action": "kernel/src/runtime/frame_authority.rs hedefinde os_frame_authority_endpoints yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İlk ve son tam sayfa kanaryası korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_endpoints"
      },
      "dependencies": [
        "K711"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "256 512 1024 MiB uçları",
      "counterexample": "Bankanın yarım son sayfası",
      "guestAcceptance": "Uç kanaryaları geri okumada eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_endpoints_positive",
        "negativeName": "os_frame_authority_endpoints_negative",
        "expectedMarker": "TURKOS/OS/K715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 256 512 1024 MiB uçları ile Bankanın yarım son sayfası ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bankanın yarım son sayfası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k712"
    },
    {
      "id": "K713",
      "number": 713,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.endpoints",
      "stage": "positive",
      "title": "Bankaların uç sayfaları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İlk ve son tam sayfa kanaryası korunur.",
      "action": "os_frame_authority_endpoints_positive testini oluştur: “256 512 1024 MiB uçları”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İlk ve son tam sayfa kanaryası korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_endpoints"
      },
      "dependencies": [
        "K712"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "256 512 1024 MiB uçları",
      "counterexample": "Bankanın yarım son sayfası",
      "guestAcceptance": "Uç kanaryaları geri okumada eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_endpoints_positive",
        "negativeName": "os_frame_authority_endpoints_negative",
        "expectedMarker": "TURKOS/OS/K715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 256 512 1024 MiB uçları girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bankanın yarım son sayfası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k713"
    },
    {
      "id": "K714",
      "number": 714,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.endpoints",
      "stage": "negative",
      "title": "Bankaların uç sayfaları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İlk ve son tam sayfa kanaryası korunur.",
      "action": "os_frame_authority_endpoints_negative testini oluştur: “Bankanın yarım son sayfası”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İlk ve son tam sayfa kanaryası korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_endpoints"
      },
      "dependencies": [
        "K713"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "256 512 1024 MiB uçları",
      "counterexample": "Bankanın yarım son sayfası",
      "guestAcceptance": "Uç kanaryaları geri okumada eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_endpoints_positive",
        "negativeName": "os_frame_authority_endpoints_negative",
        "expectedMarker": "TURKOS/OS/K715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bankanın yarım son sayfası karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bankanın yarım son sayfası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k714"
    },
    {
      "id": "K715",
      "number": 715,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.endpoints",
      "stage": "integration",
      "title": "Bankaların uç sayfaları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İlk ve son tam sayfa kanaryası korunur.",
      "action": "Tek ürün Image'ında “Uç kanaryaları geri okumada eşit” kabulünü koştur. scripts/os-acceptance/frame_authority.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İlk ve son tam sayfa kanaryası korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_endpoints"
      },
      "dependencies": [
        "K714"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "256 512 1024 MiB uçları",
      "counterexample": "Bankanın yarım son sayfası",
      "guestAcceptance": "Uç kanaryaları geri okumada eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_endpoints_positive",
        "negativeName": "os_frame_authority_endpoints_negative",
        "expectedMarker": "TURKOS/OS/K715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Uç kanaryaları geri okumada eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bankanın yarım son sayfası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k715"
    },
    {
      "id": "K716",
      "number": 716,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.audit",
      "stage": "contract",
      "title": "Sahiplik muhasebesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boş ayrılmış ve canlı sayılar toplamı korunur.",
      "action": "“Sahiplik muhasebesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Boş ayrılmış ve canlı sayılar toplamı korunur. “Dağıt iade ve yeniden dağıt” kabulü ile “Sahipsiz veya iki sahipli sayfa” reddini aynı sözleşmeye bağla.",
      "invariant": "Boş ayrılmış ve canlı sayılar toplamı korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_audit"
      },
      "dependencies": [
        "K715"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağıt iade ve yeniden dağıt",
      "counterexample": "Sahipsiz veya iki sahipli sayfa",
      "guestAcceptance": "Her tur fiziksel hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_audit_positive",
        "negativeName": "os_frame_authority_audit_negative",
        "expectedMarker": "TURKOS/OS/K720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Boş ayrılmış ve canlı sayılar toplamı korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sahipsiz veya iki sahipli sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k716"
    },
    {
      "id": "K717",
      "number": 717,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.audit",
      "stage": "implementation",
      "title": "Sahiplik muhasebesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boş ayrılmış ve canlı sayılar toplamı korunur.",
      "action": "kernel/src/runtime/frame_authority.rs hedefinde os_frame_authority_audit yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Boş ayrılmış ve canlı sayılar toplamı korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_audit"
      },
      "dependencies": [
        "K716"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağıt iade ve yeniden dağıt",
      "counterexample": "Sahipsiz veya iki sahipli sayfa",
      "guestAcceptance": "Her tur fiziksel hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_audit_positive",
        "negativeName": "os_frame_authority_audit_negative",
        "expectedMarker": "TURKOS/OS/K720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dağıt iade ve yeniden dağıt ile Sahipsiz veya iki sahipli sayfa ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sahipsiz veya iki sahipli sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k717"
    },
    {
      "id": "K718",
      "number": 718,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.audit",
      "stage": "positive",
      "title": "Sahiplik muhasebesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boş ayrılmış ve canlı sayılar toplamı korunur.",
      "action": "os_frame_authority_audit_positive testini oluştur: “Dağıt iade ve yeniden dağıt”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Boş ayrılmış ve canlı sayılar toplamı korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_audit"
      },
      "dependencies": [
        "K717"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağıt iade ve yeniden dağıt",
      "counterexample": "Sahipsiz veya iki sahipli sayfa",
      "guestAcceptance": "Her tur fiziksel hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_audit_positive",
        "negativeName": "os_frame_authority_audit_negative",
        "expectedMarker": "TURKOS/OS/K720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dağıt iade ve yeniden dağıt girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sahipsiz veya iki sahipli sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k718"
    },
    {
      "id": "K719",
      "number": 719,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.audit",
      "stage": "negative",
      "title": "Sahiplik muhasebesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boş ayrılmış ve canlı sayılar toplamı korunur.",
      "action": "os_frame_authority_audit_negative testini oluştur: “Sahipsiz veya iki sahipli sayfa”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Boş ayrılmış ve canlı sayılar toplamı korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_audit"
      },
      "dependencies": [
        "K718"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağıt iade ve yeniden dağıt",
      "counterexample": "Sahipsiz veya iki sahipli sayfa",
      "guestAcceptance": "Her tur fiziksel hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_audit_positive",
        "negativeName": "os_frame_authority_audit_negative",
        "expectedMarker": "TURKOS/OS/K720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sahipsiz veya iki sahipli sayfa karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sahipsiz veya iki sahipli sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k719"
    },
    {
      "id": "K720",
      "number": 720,
      "phase": 2,
      "module": "frame_authority",
      "feature": "frame_authority.audit",
      "stage": "integration",
      "title": "Sahiplik muhasebesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boş ayrılmış ve canlı sayılar toplamı korunur.",
      "action": "Tek ürün Image'ında “Her tur fiziksel hesap eşit” kabulünü koştur. scripts/os-acceptance/frame_authority.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Boş ayrılmış ve canlı sayılar toplamı korunur",
      "source": {
        "target": "kernel/src/runtime/frame_authority.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_authority_audit"
      },
      "dependencies": [
        "K719"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağıt iade ve yeniden dağıt",
      "counterexample": "Sahipsiz veya iki sahipli sayfa",
      "guestAcceptance": "Her tur fiziksel hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_authority.rs",
        "harness": "scripts/os-acceptance/frame_authority.mjs",
        "positiveName": "os_frame_authority_audit_positive",
        "negativeName": "os_frame_authority_audit_negative",
        "expectedMarker": "TURKOS/OS/K720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her tur fiziksel hesap eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sahipsiz veya iki sahipli sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k720"
    },
    {
      "id": "K721",
      "number": 721,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.owner",
      "stage": "contract",
      "title": "Sahip ve nesil kaydı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İade tam sahibi ve nesli ister.",
      "action": "“Sahip ve nesil kaydı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İade tam sahibi ve nesli ister. “Aynı sayfada yeni nesil” kabulü ile “Önceki neslin iadesi” reddini aynı sözleşmeye bağla.",
      "invariant": "İade tam sahibi ve nesli ister",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_owner"
      },
      "dependencies": [
        "K720"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Aynı sayfada yeni nesil",
      "counterexample": "Önceki neslin iadesi",
      "guestAcceptance": "Eski tanıtıcı canlı sayfayı alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_owner_positive",
        "negativeName": "os_frame_metadata_owner_negative",
        "expectedMarker": "TURKOS/OS/K725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İade tam sahibi ve nesli ister kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Önceki neslin iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k721"
    },
    {
      "id": "K722",
      "number": 722,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.owner",
      "stage": "implementation",
      "title": "Sahip ve nesil kaydı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İade tam sahibi ve nesli ister.",
      "action": "kernel/src/runtime/frame_metadata.rs hedefinde os_frame_metadata_owner yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İade tam sahibi ve nesli ister",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_owner"
      },
      "dependencies": [
        "K721"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Aynı sayfada yeni nesil",
      "counterexample": "Önceki neslin iadesi",
      "guestAcceptance": "Eski tanıtıcı canlı sayfayı alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_owner_positive",
        "negativeName": "os_frame_metadata_owner_negative",
        "expectedMarker": "TURKOS/OS/K725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı sayfada yeni nesil ile Önceki neslin iadesi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Önceki neslin iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k722"
    },
    {
      "id": "K723",
      "number": 723,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.owner",
      "stage": "positive",
      "title": "Sahip ve nesil kaydı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İade tam sahibi ve nesli ister.",
      "action": "os_frame_metadata_owner_positive testini oluştur: “Aynı sayfada yeni nesil”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İade tam sahibi ve nesli ister",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_owner"
      },
      "dependencies": [
        "K722"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Aynı sayfada yeni nesil",
      "counterexample": "Önceki neslin iadesi",
      "guestAcceptance": "Eski tanıtıcı canlı sayfayı alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_owner_positive",
        "negativeName": "os_frame_metadata_owner_negative",
        "expectedMarker": "TURKOS/OS/K725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı sayfada yeni nesil girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Önceki neslin iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k723"
    },
    {
      "id": "K724",
      "number": 724,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.owner",
      "stage": "negative",
      "title": "Sahip ve nesil kaydı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İade tam sahibi ve nesli ister.",
      "action": "os_frame_metadata_owner_negative testini oluştur: “Önceki neslin iadesi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İade tam sahibi ve nesli ister",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_owner"
      },
      "dependencies": [
        "K723"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Aynı sayfada yeni nesil",
      "counterexample": "Önceki neslin iadesi",
      "guestAcceptance": "Eski tanıtıcı canlı sayfayı alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_owner_positive",
        "negativeName": "os_frame_metadata_owner_negative",
        "expectedMarker": "TURKOS/OS/K725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Önceki neslin iadesi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Önceki neslin iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k724"
    },
    {
      "id": "K725",
      "number": 725,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.owner",
      "stage": "integration",
      "title": "Sahip ve nesil kaydı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: İade tam sahibi ve nesli ister.",
      "action": "Tek ürün Image'ında “Eski tanıtıcı canlı sayfayı alamaz” kabulünü koştur. scripts/os-acceptance/frame_metadata.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İade tam sahibi ve nesli ister",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_owner"
      },
      "dependencies": [
        "K724"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Aynı sayfada yeni nesil",
      "counterexample": "Önceki neslin iadesi",
      "guestAcceptance": "Eski tanıtıcı canlı sayfayı alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_owner_positive",
        "negativeName": "os_frame_metadata_owner_negative",
        "expectedMarker": "TURKOS/OS/K725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski tanıtıcı canlı sayfayı alamaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Önceki neslin iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k725"
    },
    {
      "id": "K726",
      "number": 726,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.zero",
      "stage": "contract",
      "title": "Kullanıcı çerçevesi sıfırlama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yeni kullanıcı eski veriyi göremez.",
      "action": "“Kullanıcı çerçevesi sıfırlama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yeni kullanıcı eski veriyi göremez. “0xa5 ile dolu geri gelen sayfa” kabulü ile “Sıfırlama yalnız ilk satırı yapar” reddini aynı sözleşmeye bağla.",
      "invariant": "Yeni kullanıcı eski veriyi göremez",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_zero"
      },
      "dependencies": [
        "K725"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "0xa5 ile dolu geri gelen sayfa",
      "counterexample": "Sıfırlama yalnız ilk satırı yapar",
      "guestAcceptance": "İki süreç arasında sır kanaryası yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_zero_positive",
        "negativeName": "os_frame_metadata_zero_negative",
        "expectedMarker": "TURKOS/OS/K730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yeni kullanıcı eski veriyi göremez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sıfırlama yalnız ilk satırı yapar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k726"
    },
    {
      "id": "K727",
      "number": 727,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.zero",
      "stage": "implementation",
      "title": "Kullanıcı çerçevesi sıfırlama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yeni kullanıcı eski veriyi göremez.",
      "action": "kernel/src/runtime/frame_metadata.rs hedefinde os_frame_metadata_zero yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yeni kullanıcı eski veriyi göremez",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_zero"
      },
      "dependencies": [
        "K726"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "0xa5 ile dolu geri gelen sayfa",
      "counterexample": "Sıfırlama yalnız ilk satırı yapar",
      "guestAcceptance": "İki süreç arasında sır kanaryası yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_zero_positive",
        "negativeName": "os_frame_metadata_zero_negative",
        "expectedMarker": "TURKOS/OS/K730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 0xa5 ile dolu geri gelen sayfa ile Sıfırlama yalnız ilk satırı yapar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sıfırlama yalnız ilk satırı yapar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k727"
    },
    {
      "id": "K728",
      "number": 728,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.zero",
      "stage": "positive",
      "title": "Kullanıcı çerçevesi sıfırlama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yeni kullanıcı eski veriyi göremez.",
      "action": "os_frame_metadata_zero_positive testini oluştur: “0xa5 ile dolu geri gelen sayfa”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yeni kullanıcı eski veriyi göremez",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_zero"
      },
      "dependencies": [
        "K727"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "0xa5 ile dolu geri gelen sayfa",
      "counterexample": "Sıfırlama yalnız ilk satırı yapar",
      "guestAcceptance": "İki süreç arasında sır kanaryası yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_zero_positive",
        "negativeName": "os_frame_metadata_zero_negative",
        "expectedMarker": "TURKOS/OS/K730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 0xa5 ile dolu geri gelen sayfa girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sıfırlama yalnız ilk satırı yapar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k728"
    },
    {
      "id": "K729",
      "number": 729,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.zero",
      "stage": "negative",
      "title": "Kullanıcı çerçevesi sıfırlama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yeni kullanıcı eski veriyi göremez.",
      "action": "os_frame_metadata_zero_negative testini oluştur: “Sıfırlama yalnız ilk satırı yapar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yeni kullanıcı eski veriyi göremez",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_zero"
      },
      "dependencies": [
        "K728"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "0xa5 ile dolu geri gelen sayfa",
      "counterexample": "Sıfırlama yalnız ilk satırı yapar",
      "guestAcceptance": "İki süreç arasında sır kanaryası yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_zero_positive",
        "negativeName": "os_frame_metadata_zero_negative",
        "expectedMarker": "TURKOS/OS/K730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sıfırlama yalnız ilk satırı yapar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sıfırlama yalnız ilk satırı yapar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k729"
    },
    {
      "id": "K730",
      "number": 730,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.zero",
      "stage": "integration",
      "title": "Kullanıcı çerçevesi sıfırlama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yeni kullanıcı eski veriyi göremez.",
      "action": "Tek ürün Image'ında “İki süreç arasında sır kanaryası yok” kabulünü koştur. scripts/os-acceptance/frame_metadata.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yeni kullanıcı eski veriyi göremez",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_zero"
      },
      "dependencies": [
        "K729"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "0xa5 ile dolu geri gelen sayfa",
      "counterexample": "Sıfırlama yalnız ilk satırı yapar",
      "guestAcceptance": "İki süreç arasında sır kanaryası yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_zero_positive",
        "negativeName": "os_frame_metadata_zero_negative",
        "expectedMarker": "TURKOS/OS/K730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki süreç arasında sır kanaryası yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sıfırlama yalnız ilk satırı yapar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k730"
    },
    {
      "id": "K731",
      "number": 731,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.pins",
      "stage": "contract",
      "title": "Pin referans sayısı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Pin sıfırlanmadan fiziksel iade yok.",
      "action": "“Pin referans sayısı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Pin sıfırlanmadan fiziksel iade yok. “İki ayrı pin bırakılır” kabulü ile “Pin taşması veya çift unpin” reddini aynı sözleşmeye bağla.",
      "invariant": "Pin sıfırlanmadan fiziksel iade yok",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_pins"
      },
      "dependencies": [
        "K730"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki ayrı pin bırakılır",
      "counterexample": "Pin taşması veya çift unpin",
      "guestAcceptance": "Son pin kalkınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_pins_positive",
        "negativeName": "os_frame_metadata_pins_negative",
        "expectedMarker": "TURKOS/OS/K735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Pin sıfırlanmadan fiziksel iade yok kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Pin taşması veya çift unpin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k731"
    },
    {
      "id": "K732",
      "number": 732,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.pins",
      "stage": "implementation",
      "title": "Pin referans sayısı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Pin sıfırlanmadan fiziksel iade yok.",
      "action": "kernel/src/runtime/frame_metadata.rs hedefinde os_frame_metadata_pins yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Pin sıfırlanmadan fiziksel iade yok",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_pins"
      },
      "dependencies": [
        "K731"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki ayrı pin bırakılır",
      "counterexample": "Pin taşması veya çift unpin",
      "guestAcceptance": "Son pin kalkınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_pins_positive",
        "negativeName": "os_frame_metadata_pins_negative",
        "expectedMarker": "TURKOS/OS/K735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki ayrı pin bırakılır ile Pin taşması veya çift unpin ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Pin taşması veya çift unpin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k732"
    },
    {
      "id": "K733",
      "number": 733,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.pins",
      "stage": "positive",
      "title": "Pin referans sayısı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Pin sıfırlanmadan fiziksel iade yok.",
      "action": "os_frame_metadata_pins_positive testini oluştur: “İki ayrı pin bırakılır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Pin sıfırlanmadan fiziksel iade yok",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_pins"
      },
      "dependencies": [
        "K732"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki ayrı pin bırakılır",
      "counterexample": "Pin taşması veya çift unpin",
      "guestAcceptance": "Son pin kalkınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_pins_positive",
        "negativeName": "os_frame_metadata_pins_negative",
        "expectedMarker": "TURKOS/OS/K735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki ayrı pin bırakılır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Pin taşması veya çift unpin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k733"
    },
    {
      "id": "K734",
      "number": 734,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.pins",
      "stage": "negative",
      "title": "Pin referans sayısı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Pin sıfırlanmadan fiziksel iade yok.",
      "action": "os_frame_metadata_pins_negative testini oluştur: “Pin taşması veya çift unpin”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Pin sıfırlanmadan fiziksel iade yok",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_pins"
      },
      "dependencies": [
        "K733"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki ayrı pin bırakılır",
      "counterexample": "Pin taşması veya çift unpin",
      "guestAcceptance": "Son pin kalkınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_pins_positive",
        "negativeName": "os_frame_metadata_pins_negative",
        "expectedMarker": "TURKOS/OS/K735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Pin taşması veya çift unpin karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Pin taşması veya çift unpin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k734"
    },
    {
      "id": "K735",
      "number": 735,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.pins",
      "stage": "integration",
      "title": "Pin referans sayısı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Pin sıfırlanmadan fiziksel iade yok.",
      "action": "Tek ürün Image'ında “Son pin kalkınca tek iade” kabulünü koştur. scripts/os-acceptance/frame_metadata.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Pin sıfırlanmadan fiziksel iade yok",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_pins"
      },
      "dependencies": [
        "K734"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki ayrı pin bırakılır",
      "counterexample": "Pin taşması veya çift unpin",
      "guestAcceptance": "Son pin kalkınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_pins_positive",
        "negativeName": "os_frame_metadata_pins_negative",
        "expectedMarker": "TURKOS/OS/K735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son pin kalkınca tek iade; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Pin taşması veya çift unpin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k735"
    },
    {
      "id": "K736",
      "number": 736,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.reclaim",
      "stage": "contract",
      "title": "Metadata kapasite tükenmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Metadata ENOSPC tahsisi yayımlamaz.",
      "action": "“Metadata kapasite tükenmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Metadata ENOSPC tahsisi yayımlamaz. “Son kayıt kullanılır” kabulü ile “Kapasite artı bir talep” reddini aynı sözleşmeye bağla.",
      "invariant": "Metadata ENOSPC tahsisi yayımlamaz",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_reclaim"
      },
      "dependencies": [
        "K735"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Son kayıt kullanılır",
      "counterexample": "Kapasite artı bir talep",
      "guestAcceptance": "Fiziksel ve metadata toplamı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_reclaim_positive",
        "negativeName": "os_frame_metadata_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Metadata ENOSPC tahsisi yayımlamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kapasite artı bir talep” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k736"
    },
    {
      "id": "K737",
      "number": 737,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.reclaim",
      "stage": "implementation",
      "title": "Metadata kapasite tükenmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Metadata ENOSPC tahsisi yayımlamaz.",
      "action": "kernel/src/runtime/frame_metadata.rs hedefinde os_frame_metadata_reclaim yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Metadata ENOSPC tahsisi yayımlamaz",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_reclaim"
      },
      "dependencies": [
        "K736"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Son kayıt kullanılır",
      "counterexample": "Kapasite artı bir talep",
      "guestAcceptance": "Fiziksel ve metadata toplamı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_reclaim_positive",
        "negativeName": "os_frame_metadata_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Son kayıt kullanılır ile Kapasite artı bir talep ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kapasite artı bir talep” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k737"
    },
    {
      "id": "K738",
      "number": 738,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.reclaim",
      "stage": "positive",
      "title": "Metadata kapasite tükenmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Metadata ENOSPC tahsisi yayımlamaz.",
      "action": "os_frame_metadata_reclaim_positive testini oluştur: “Son kayıt kullanılır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Metadata ENOSPC tahsisi yayımlamaz",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_reclaim"
      },
      "dependencies": [
        "K737"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Son kayıt kullanılır",
      "counterexample": "Kapasite artı bir talep",
      "guestAcceptance": "Fiziksel ve metadata toplamı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_reclaim_positive",
        "negativeName": "os_frame_metadata_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Son kayıt kullanılır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kapasite artı bir talep” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k738"
    },
    {
      "id": "K739",
      "number": 739,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.reclaim",
      "stage": "negative",
      "title": "Metadata kapasite tükenmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Metadata ENOSPC tahsisi yayımlamaz.",
      "action": "os_frame_metadata_reclaim_negative testini oluştur: “Kapasite artı bir talep”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Metadata ENOSPC tahsisi yayımlamaz",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_reclaim"
      },
      "dependencies": [
        "K738"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Son kayıt kullanılır",
      "counterexample": "Kapasite artı bir talep",
      "guestAcceptance": "Fiziksel ve metadata toplamı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_reclaim_positive",
        "negativeName": "os_frame_metadata_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kapasite artı bir talep karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kapasite artı bir talep” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k739"
    },
    {
      "id": "K740",
      "number": 740,
      "phase": 2,
      "module": "frame_metadata",
      "feature": "frame_metadata.reclaim",
      "stage": "integration",
      "title": "Metadata kapasite tükenmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Metadata ENOSPC tahsisi yayımlamaz.",
      "action": "Tek ürün Image'ında “Fiziksel ve metadata toplamı sabit” kabulünü koştur. scripts/os-acceptance/frame_metadata.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Metadata ENOSPC tahsisi yayımlamaz",
      "source": {
        "target": "kernel/src/runtime/frame_metadata.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_frame_metadata_reclaim"
      },
      "dependencies": [
        "K739"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Son kayıt kullanılır",
      "counterexample": "Kapasite artı bir talep",
      "guestAcceptance": "Fiziksel ve metadata toplamı sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/frame_metadata.rs",
        "harness": "scripts/os-acceptance/frame_metadata.mjs",
        "positiveName": "os_frame_metadata_reclaim_positive",
        "negativeName": "os_frame_metadata_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Fiziksel ve metadata toplamı sabit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kapasite artı bir talep” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k740"
    },
    {
      "id": "K741",
      "number": 741,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.orders",
      "stage": "contract",
      "title": "Buddy mertebe düzeni · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her blok hizalı ve tek mertebededir.",
      "action": "“Buddy mertebe düzeni” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her blok hizalı ve tek mertebededir. “1 2 4 8 sayfa” kabulü ile “Hizasız blok başlangıcı” reddini aynı sözleşmeye bağla.",
      "invariant": "Her blok hizalı ve tek mertebededir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_orders"
      },
      "dependencies": [
        "K740"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "1 2 4 8 sayfa",
      "counterexample": "Hizasız blok başlangıcı",
      "guestAcceptance": "Çok sayfalı konuk tahsisi ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_orders_positive",
        "negativeName": "os_buddy_orders_negative",
        "expectedMarker": "TURKOS/OS/K745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her blok hizalı ve tek mertebededir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Hizasız blok başlangıcı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k741"
    },
    {
      "id": "K742",
      "number": 742,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.orders",
      "stage": "implementation",
      "title": "Buddy mertebe düzeni · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her blok hizalı ve tek mertebededir.",
      "action": "kernel/src/runtime/buddy.rs hedefinde os_buddy_orders yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her blok hizalı ve tek mertebededir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_orders"
      },
      "dependencies": [
        "K741"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "1 2 4 8 sayfa",
      "counterexample": "Hizasız blok başlangıcı",
      "guestAcceptance": "Çok sayfalı konuk tahsisi ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_orders_positive",
        "negativeName": "os_buddy_orders_negative",
        "expectedMarker": "TURKOS/OS/K745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 1 2 4 8 sayfa ile Hizasız blok başlangıcı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Hizasız blok başlangıcı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k742"
    },
    {
      "id": "K743",
      "number": 743,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.orders",
      "stage": "positive",
      "title": "Buddy mertebe düzeni · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her blok hizalı ve tek mertebededir.",
      "action": "os_buddy_orders_positive testini oluştur: “1 2 4 8 sayfa”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her blok hizalı ve tek mertebededir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_orders"
      },
      "dependencies": [
        "K742"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "1 2 4 8 sayfa",
      "counterexample": "Hizasız blok başlangıcı",
      "guestAcceptance": "Çok sayfalı konuk tahsisi ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_orders_positive",
        "negativeName": "os_buddy_orders_negative",
        "expectedMarker": "TURKOS/OS/K745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 1 2 4 8 sayfa girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Hizasız blok başlangıcı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k743"
    },
    {
      "id": "K744",
      "number": 744,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.orders",
      "stage": "negative",
      "title": "Buddy mertebe düzeni · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her blok hizalı ve tek mertebededir.",
      "action": "os_buddy_orders_negative testini oluştur: “Hizasız blok başlangıcı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her blok hizalı ve tek mertebededir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_orders"
      },
      "dependencies": [
        "K743"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "1 2 4 8 sayfa",
      "counterexample": "Hizasız blok başlangıcı",
      "guestAcceptance": "Çok sayfalı konuk tahsisi ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_orders_positive",
        "negativeName": "os_buddy_orders_negative",
        "expectedMarker": "TURKOS/OS/K745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hizasız blok başlangıcı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Hizasız blok başlangıcı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k744"
    },
    {
      "id": "K745",
      "number": 745,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.orders",
      "stage": "integration",
      "title": "Buddy mertebe düzeni · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her blok hizalı ve tek mertebededir.",
      "action": "Tek ürün Image'ında “Çok sayfalı konuk tahsisi ayrık” kabulünü koştur. scripts/os-acceptance/buddy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her blok hizalı ve tek mertebededir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_orders"
      },
      "dependencies": [
        "K744"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "1 2 4 8 sayfa",
      "counterexample": "Hizasız blok başlangıcı",
      "guestAcceptance": "Çok sayfalı konuk tahsisi ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_orders_positive",
        "negativeName": "os_buddy_orders_negative",
        "expectedMarker": "TURKOS/OS/K745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çok sayfalı konuk tahsisi ayrık; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Hizasız blok başlangıcı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k745"
    },
    {
      "id": "K746",
      "number": 746,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.split",
      "stage": "contract",
      "title": "Blok bölme işlemi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Bölme çocukları ebeveyni tam örter.",
      "action": "“Blok bölme işlemi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bölme çocukları ebeveyni tam örter. “8 sayfadan iki 4” kabulü ile “Bir çocuk iki kez listelenir” reddini aynı sözleşmeye bağla.",
      "invariant": "Bölme çocukları ebeveyni tam örter",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_split"
      },
      "dependencies": [
        "K745"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 sayfadan iki 4",
      "counterexample": "Bir çocuk iki kez listelenir",
      "guestAcceptance": "Üç mertebe tahsis toplamı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_split_positive",
        "negativeName": "os_buddy_split_negative",
        "expectedMarker": "TURKOS/OS/K750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bölme çocukları ebeveyni tam örter kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir çocuk iki kez listelenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k746"
    },
    {
      "id": "K747",
      "number": 747,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.split",
      "stage": "implementation",
      "title": "Blok bölme işlemi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Bölme çocukları ebeveyni tam örter.",
      "action": "kernel/src/runtime/buddy.rs hedefinde os_buddy_split yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bölme çocukları ebeveyni tam örter",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_split"
      },
      "dependencies": [
        "K746"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 sayfadan iki 4",
      "counterexample": "Bir çocuk iki kez listelenir",
      "guestAcceptance": "Üç mertebe tahsis toplamı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_split_positive",
        "negativeName": "os_buddy_split_negative",
        "expectedMarker": "TURKOS/OS/K750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 8 sayfadan iki 4 ile Bir çocuk iki kez listelenir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir çocuk iki kez listelenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k747"
    },
    {
      "id": "K748",
      "number": 748,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.split",
      "stage": "positive",
      "title": "Blok bölme işlemi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Bölme çocukları ebeveyni tam örter.",
      "action": "os_buddy_split_positive testini oluştur: “8 sayfadan iki 4”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bölme çocukları ebeveyni tam örter",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_split"
      },
      "dependencies": [
        "K747"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 sayfadan iki 4",
      "counterexample": "Bir çocuk iki kez listelenir",
      "guestAcceptance": "Üç mertebe tahsis toplamı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_split_positive",
        "negativeName": "os_buddy_split_negative",
        "expectedMarker": "TURKOS/OS/K750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 8 sayfadan iki 4 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir çocuk iki kez listelenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k748"
    },
    {
      "id": "K749",
      "number": 749,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.split",
      "stage": "negative",
      "title": "Blok bölme işlemi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Bölme çocukları ebeveyni tam örter.",
      "action": "os_buddy_split_negative testini oluştur: “Bir çocuk iki kez listelenir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bölme çocukları ebeveyni tam örter",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_split"
      },
      "dependencies": [
        "K748"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 sayfadan iki 4",
      "counterexample": "Bir çocuk iki kez listelenir",
      "guestAcceptance": "Üç mertebe tahsis toplamı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_split_positive",
        "negativeName": "os_buddy_split_negative",
        "expectedMarker": "TURKOS/OS/K750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir çocuk iki kez listelenir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir çocuk iki kez listelenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k749"
    },
    {
      "id": "K750",
      "number": 750,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.split",
      "stage": "integration",
      "title": "Blok bölme işlemi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Bölme çocukları ebeveyni tam örter.",
      "action": "Tek ürün Image'ında “Üç mertebe tahsis toplamı eşit” kabulünü koştur. scripts/os-acceptance/buddy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bölme çocukları ebeveyni tam örter",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_split"
      },
      "dependencies": [
        "K749"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 sayfadan iki 4",
      "counterexample": "Bir çocuk iki kez listelenir",
      "guestAcceptance": "Üç mertebe tahsis toplamı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_split_positive",
        "negativeName": "os_buddy_split_negative",
        "expectedMarker": "TURKOS/OS/K750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Üç mertebe tahsis toplamı eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir çocuk iki kez listelenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k750"
    },
    {
      "id": "K751",
      "number": 751,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.merge",
      "stage": "contract",
      "title": "Arkadaş blok birleştirme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız boş aynı mertebe arkadaş birleşir.",
      "action": "“Arkadaş blok birleştirme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yalnız boş aynı mertebe arkadaş birleşir. “İki boş komşu blok” kabulü ile “Canlı arkadaşla birleştirme” reddini aynı sözleşmeye bağla.",
      "invariant": "Yalnız boş aynı mertebe arkadaş birleşir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_merge"
      },
      "dependencies": [
        "K750"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki boş komşu blok",
      "counterexample": "Canlı arkadaşla birleştirme",
      "guestAcceptance": "Parçalanma sonrası büyük blok geri gelir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_merge_positive",
        "negativeName": "os_buddy_merge_negative",
        "expectedMarker": "TURKOS/OS/K755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yalnız boş aynı mertebe arkadaş birleşir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Canlı arkadaşla birleştirme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k751"
    },
    {
      "id": "K752",
      "number": 752,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.merge",
      "stage": "implementation",
      "title": "Arkadaş blok birleştirme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız boş aynı mertebe arkadaş birleşir.",
      "action": "kernel/src/runtime/buddy.rs hedefinde os_buddy_merge yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yalnız boş aynı mertebe arkadaş birleşir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_merge"
      },
      "dependencies": [
        "K751"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki boş komşu blok",
      "counterexample": "Canlı arkadaşla birleştirme",
      "guestAcceptance": "Parçalanma sonrası büyük blok geri gelir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_merge_positive",
        "negativeName": "os_buddy_merge_negative",
        "expectedMarker": "TURKOS/OS/K755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki boş komşu blok ile Canlı arkadaşla birleştirme ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Canlı arkadaşla birleştirme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k752"
    },
    {
      "id": "K753",
      "number": 753,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.merge",
      "stage": "positive",
      "title": "Arkadaş blok birleştirme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız boş aynı mertebe arkadaş birleşir.",
      "action": "os_buddy_merge_positive testini oluştur: “İki boş komşu blok”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yalnız boş aynı mertebe arkadaş birleşir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_merge"
      },
      "dependencies": [
        "K752"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki boş komşu blok",
      "counterexample": "Canlı arkadaşla birleştirme",
      "guestAcceptance": "Parçalanma sonrası büyük blok geri gelir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_merge_positive",
        "negativeName": "os_buddy_merge_negative",
        "expectedMarker": "TURKOS/OS/K755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki boş komşu blok girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Canlı arkadaşla birleştirme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k753"
    },
    {
      "id": "K754",
      "number": 754,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.merge",
      "stage": "negative",
      "title": "Arkadaş blok birleştirme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız boş aynı mertebe arkadaş birleşir.",
      "action": "os_buddy_merge_negative testini oluştur: “Canlı arkadaşla birleştirme”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yalnız boş aynı mertebe arkadaş birleşir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_merge"
      },
      "dependencies": [
        "K753"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki boş komşu blok",
      "counterexample": "Canlı arkadaşla birleştirme",
      "guestAcceptance": "Parçalanma sonrası büyük blok geri gelir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_merge_positive",
        "negativeName": "os_buddy_merge_negative",
        "expectedMarker": "TURKOS/OS/K755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Canlı arkadaşla birleştirme karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Canlı arkadaşla birleştirme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k754"
    },
    {
      "id": "K755",
      "number": 755,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.merge",
      "stage": "integration",
      "title": "Arkadaş blok birleştirme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yalnız boş aynı mertebe arkadaş birleşir.",
      "action": "Tek ürün Image'ında “Parçalanma sonrası büyük blok geri gelir” kabulünü koştur. scripts/os-acceptance/buddy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yalnız boş aynı mertebe arkadaş birleşir",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_merge"
      },
      "dependencies": [
        "K754"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "İki boş komşu blok",
      "counterexample": "Canlı arkadaşla birleştirme",
      "guestAcceptance": "Parçalanma sonrası büyük blok geri gelir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_merge_positive",
        "negativeName": "os_buddy_merge_negative",
        "expectedMarker": "TURKOS/OS/K755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Parçalanma sonrası büyük blok geri gelir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Canlı arkadaşla birleştirme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k755"
    },
    {
      "id": "K756",
      "number": 756,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.fallback",
      "stage": "contract",
      "title": "Parçalanmış RAM yolu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Contiguous talep sessiz scatter olmaz.",
      "action": "“Parçalanmış RAM yolu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Contiguous talep sessiz scatter olmaz. “Dağınık boş sayfalar” kabulü ile “DMA kesintisiz diye yanlış kabul” reddini aynı sözleşmeye bağla.",
      "invariant": "Contiguous talep sessiz scatter olmaz",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_fallback"
      },
      "dependencies": [
        "K755"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağınık boş sayfalar",
      "counterexample": "DMA kesintisiz diye yanlış kabul",
      "guestAcceptance": "Açık hata ve değişmeyen free map",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_fallback_positive",
        "negativeName": "os_buddy_fallback_negative",
        "expectedMarker": "TURKOS/OS/K760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Contiguous talep sessiz scatter olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“DMA kesintisiz diye yanlış kabul” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k756"
    },
    {
      "id": "K757",
      "number": 757,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.fallback",
      "stage": "implementation",
      "title": "Parçalanmış RAM yolu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Contiguous talep sessiz scatter olmaz.",
      "action": "kernel/src/runtime/buddy.rs hedefinde os_buddy_fallback yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Contiguous talep sessiz scatter olmaz",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_fallback"
      },
      "dependencies": [
        "K756"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağınık boş sayfalar",
      "counterexample": "DMA kesintisiz diye yanlış kabul",
      "guestAcceptance": "Açık hata ve değişmeyen free map",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_fallback_positive",
        "negativeName": "os_buddy_fallback_negative",
        "expectedMarker": "TURKOS/OS/K760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dağınık boş sayfalar ile DMA kesintisiz diye yanlış kabul ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“DMA kesintisiz diye yanlış kabul” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k757"
    },
    {
      "id": "K758",
      "number": 758,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.fallback",
      "stage": "positive",
      "title": "Parçalanmış RAM yolu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Contiguous talep sessiz scatter olmaz.",
      "action": "os_buddy_fallback_positive testini oluştur: “Dağınık boş sayfalar”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Contiguous talep sessiz scatter olmaz",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_fallback"
      },
      "dependencies": [
        "K757"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağınık boş sayfalar",
      "counterexample": "DMA kesintisiz diye yanlış kabul",
      "guestAcceptance": "Açık hata ve değişmeyen free map",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_fallback_positive",
        "negativeName": "os_buddy_fallback_negative",
        "expectedMarker": "TURKOS/OS/K760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dağınık boş sayfalar girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“DMA kesintisiz diye yanlış kabul” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k758"
    },
    {
      "id": "K759",
      "number": 759,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.fallback",
      "stage": "negative",
      "title": "Parçalanmış RAM yolu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Contiguous talep sessiz scatter olmaz.",
      "action": "os_buddy_fallback_negative testini oluştur: “DMA kesintisiz diye yanlış kabul”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Contiguous talep sessiz scatter olmaz",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_fallback"
      },
      "dependencies": [
        "K758"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağınık boş sayfalar",
      "counterexample": "DMA kesintisiz diye yanlış kabul",
      "guestAcceptance": "Açık hata ve değişmeyen free map",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_fallback_positive",
        "negativeName": "os_buddy_fallback_negative",
        "expectedMarker": "TURKOS/OS/K760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "DMA kesintisiz diye yanlış kabul karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“DMA kesintisiz diye yanlış kabul” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k759"
    },
    {
      "id": "K760",
      "number": 760,
      "phase": 2,
      "module": "buddy",
      "feature": "buddy.fallback",
      "stage": "integration",
      "title": "Parçalanmış RAM yolu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Contiguous talep sessiz scatter olmaz.",
      "action": "Tek ürün Image'ında “Açık hata ve değişmeyen free map” kabulünü koştur. scripts/os-acceptance/buddy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Contiguous talep sessiz scatter olmaz",
      "source": {
        "target": "kernel/src/runtime/buddy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_buddy_fallback"
      },
      "dependencies": [
        "K759"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dağınık boş sayfalar",
      "counterexample": "DMA kesintisiz diye yanlış kabul",
      "guestAcceptance": "Açık hata ve değişmeyen free map",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/buddy.rs",
        "harness": "scripts/os-acceptance/buddy.mjs",
        "positiveName": "os_buddy_fallback_positive",
        "negativeName": "os_buddy_fallback_negative",
        "expectedMarker": "TURKOS/OS/K760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Açık hata ve değişmeyen free map; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“DMA kesintisiz diye yanlış kabul” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k760"
    },
    {
      "id": "K761",
      "number": 761,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.classes",
      "stage": "contract",
      "title": "Slab boyut sınıfları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boy ve hizaya göre tek sınıf seçilir.",
      "action": "“Slab boyut sınıfları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Boy ve hizaya göre tek sınıf seçilir. “24 64 128 bayt nesneler” kabulü ile “Sıfır veya taşan Layout” reddini aynı sözleşmeye bağla.",
      "invariant": "Boy ve hizaya göre tek sınıf seçilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_classes"
      },
      "dependencies": [
        "K760"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "24 64 128 bayt nesneler",
      "counterexample": "Sıfır veya taşan Layout",
      "guestAcceptance": "Nesneler hizalı ve ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_classes_positive",
        "negativeName": "os_kernel_heap_classes_negative",
        "expectedMarker": "TURKOS/OS/K765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Boy ve hizaya göre tek sınıf seçilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sıfır veya taşan Layout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k761"
    },
    {
      "id": "K762",
      "number": 762,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.classes",
      "stage": "implementation",
      "title": "Slab boyut sınıfları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boy ve hizaya göre tek sınıf seçilir.",
      "action": "kernel/src/runtime/kernel_heap.rs hedefinde os_kernel_heap_classes yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/heap.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Boy ve hizaya göre tek sınıf seçilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_classes"
      },
      "dependencies": [
        "K761"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "24 64 128 bayt nesneler",
      "counterexample": "Sıfır veya taşan Layout",
      "guestAcceptance": "Nesneler hizalı ve ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_classes_positive",
        "negativeName": "os_kernel_heap_classes_negative",
        "expectedMarker": "TURKOS/OS/K765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 24 64 128 bayt nesneler ile Sıfır veya taşan Layout ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sıfır veya taşan Layout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k762"
    },
    {
      "id": "K763",
      "number": 763,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.classes",
      "stage": "positive",
      "title": "Slab boyut sınıfları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boy ve hizaya göre tek sınıf seçilir.",
      "action": "os_kernel_heap_classes_positive testini oluştur: “24 64 128 bayt nesneler”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Boy ve hizaya göre tek sınıf seçilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_classes"
      },
      "dependencies": [
        "K762"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "24 64 128 bayt nesneler",
      "counterexample": "Sıfır veya taşan Layout",
      "guestAcceptance": "Nesneler hizalı ve ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_classes_positive",
        "negativeName": "os_kernel_heap_classes_negative",
        "expectedMarker": "TURKOS/OS/K765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 24 64 128 bayt nesneler girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sıfır veya taşan Layout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k763"
    },
    {
      "id": "K764",
      "number": 764,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.classes",
      "stage": "negative",
      "title": "Slab boyut sınıfları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boy ve hizaya göre tek sınıf seçilir.",
      "action": "os_kernel_heap_classes_negative testini oluştur: “Sıfır veya taşan Layout”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Boy ve hizaya göre tek sınıf seçilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_classes"
      },
      "dependencies": [
        "K763"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "24 64 128 bayt nesneler",
      "counterexample": "Sıfır veya taşan Layout",
      "guestAcceptance": "Nesneler hizalı ve ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_classes_positive",
        "negativeName": "os_kernel_heap_classes_negative",
        "expectedMarker": "TURKOS/OS/K765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sıfır veya taşan Layout karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sıfır veya taşan Layout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k764"
    },
    {
      "id": "K765",
      "number": 765,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.classes",
      "stage": "integration",
      "title": "Slab boyut sınıfları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Boy ve hizaya göre tek sınıf seçilir.",
      "action": "Tek ürün Image'ında “Nesneler hizalı ve ayrık” kabulünü koştur. scripts/os-acceptance/kernel_heap.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Boy ve hizaya göre tek sınıf seçilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_classes"
      },
      "dependencies": [
        "K764"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "24 64 128 bayt nesneler",
      "counterexample": "Sıfır veya taşan Layout",
      "guestAcceptance": "Nesneler hizalı ve ayrık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_classes_positive",
        "negativeName": "os_kernel_heap_classes_negative",
        "expectedMarker": "TURKOS/OS/K765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Nesneler hizalı ve ayrık; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sıfır veya taşan Layout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k765"
    },
    {
      "id": "K766",
      "number": 766,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.large",
      "stage": "contract",
      "title": "Büyük kernel nesneleri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Büyük nesne sayfa sahibini tutar.",
      "action": "“Büyük kernel nesneleri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Büyük nesne sayfa sahibini tutar. “8 KiB hizmet tamponu” kabulü ile “Kısmi edinimde üçüncü sayfa yok” reddini aynı sözleşmeye bağla.",
      "invariant": "Büyük nesne sayfa sahibini tutar",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_large"
      },
      "dependencies": [
        "K765"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 KiB hizmet tamponu",
      "counterexample": "Kısmi edinimde üçüncü sayfa yok",
      "guestAcceptance": "ENOSPC bütün sayfaları geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_large_positive",
        "negativeName": "os_kernel_heap_large_negative",
        "expectedMarker": "TURKOS/OS/K770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Büyük nesne sayfa sahibini tutar kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kısmi edinimde üçüncü sayfa yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k766"
    },
    {
      "id": "K767",
      "number": 767,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.large",
      "stage": "implementation",
      "title": "Büyük kernel nesneleri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Büyük nesne sayfa sahibini tutar.",
      "action": "kernel/src/runtime/kernel_heap.rs hedefinde os_kernel_heap_large yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/heap.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Büyük nesne sayfa sahibini tutar",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_large"
      },
      "dependencies": [
        "K766"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 KiB hizmet tamponu",
      "counterexample": "Kısmi edinimde üçüncü sayfa yok",
      "guestAcceptance": "ENOSPC bütün sayfaları geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_large_positive",
        "negativeName": "os_kernel_heap_large_negative",
        "expectedMarker": "TURKOS/OS/K770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 8 KiB hizmet tamponu ile Kısmi edinimde üçüncü sayfa yok ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kısmi edinimde üçüncü sayfa yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k767"
    },
    {
      "id": "K768",
      "number": 768,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.large",
      "stage": "positive",
      "title": "Büyük kernel nesneleri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Büyük nesne sayfa sahibini tutar.",
      "action": "os_kernel_heap_large_positive testini oluştur: “8 KiB hizmet tamponu”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Büyük nesne sayfa sahibini tutar",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_large"
      },
      "dependencies": [
        "K767"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 KiB hizmet tamponu",
      "counterexample": "Kısmi edinimde üçüncü sayfa yok",
      "guestAcceptance": "ENOSPC bütün sayfaları geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_large_positive",
        "negativeName": "os_kernel_heap_large_negative",
        "expectedMarker": "TURKOS/OS/K770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 8 KiB hizmet tamponu girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kısmi edinimde üçüncü sayfa yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k768"
    },
    {
      "id": "K769",
      "number": 769,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.large",
      "stage": "negative",
      "title": "Büyük kernel nesneleri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Büyük nesne sayfa sahibini tutar.",
      "action": "os_kernel_heap_large_negative testini oluştur: “Kısmi edinimde üçüncü sayfa yok”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Büyük nesne sayfa sahibini tutar",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_large"
      },
      "dependencies": [
        "K768"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 KiB hizmet tamponu",
      "counterexample": "Kısmi edinimde üçüncü sayfa yok",
      "guestAcceptance": "ENOSPC bütün sayfaları geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_large_positive",
        "negativeName": "os_kernel_heap_large_negative",
        "expectedMarker": "TURKOS/OS/K770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kısmi edinimde üçüncü sayfa yok karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kısmi edinimde üçüncü sayfa yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k769"
    },
    {
      "id": "K770",
      "number": 770,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.large",
      "stage": "integration",
      "title": "Büyük kernel nesneleri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Büyük nesne sayfa sahibini tutar.",
      "action": "Tek ürün Image'ında “ENOSPC bütün sayfaları geri alır” kabulünü koştur. scripts/os-acceptance/kernel_heap.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Büyük nesne sayfa sahibini tutar",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_large"
      },
      "dependencies": [
        "K769"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "8 KiB hizmet tamponu",
      "counterexample": "Kısmi edinimde üçüncü sayfa yok",
      "guestAcceptance": "ENOSPC bütün sayfaları geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_large_positive",
        "negativeName": "os_kernel_heap_large_negative",
        "expectedMarker": "TURKOS/OS/K770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ENOSPC bütün sayfaları geri alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kısmi edinimde üçüncü sayfa yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k770"
    },
    {
      "id": "K771",
      "number": 771,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.free",
      "stage": "contract",
      "title": "Heap nesne iadesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yabancı pointer ve çift iade reddedilir.",
      "action": "“Heap nesne iadesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yabancı pointer ve çift iade reddedilir. “Bir nesne bir kez iade” kabulü ile “İç pointer ile free” reddini aynı sözleşmeye bağla.",
      "invariant": "Yabancı pointer ve çift iade reddedilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_free"
      },
      "dependencies": [
        "K770"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Bir nesne bir kez iade",
      "counterexample": "İç pointer ile free",
      "guestAcceptance": "Diğer nesnelerin kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_free_positive",
        "negativeName": "os_kernel_heap_free_negative",
        "expectedMarker": "TURKOS/OS/K775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yabancı pointer ve çift iade reddedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İç pointer ile free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k771"
    },
    {
      "id": "K772",
      "number": 772,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.free",
      "stage": "implementation",
      "title": "Heap nesne iadesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yabancı pointer ve çift iade reddedilir.",
      "action": "kernel/src/runtime/kernel_heap.rs hedefinde os_kernel_heap_free yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/heap.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yabancı pointer ve çift iade reddedilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_free"
      },
      "dependencies": [
        "K771"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Bir nesne bir kez iade",
      "counterexample": "İç pointer ile free",
      "guestAcceptance": "Diğer nesnelerin kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_free_positive",
        "negativeName": "os_kernel_heap_free_negative",
        "expectedMarker": "TURKOS/OS/K775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir nesne bir kez iade ile İç pointer ile free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İç pointer ile free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k772"
    },
    {
      "id": "K773",
      "number": 773,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.free",
      "stage": "positive",
      "title": "Heap nesne iadesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yabancı pointer ve çift iade reddedilir.",
      "action": "os_kernel_heap_free_positive testini oluştur: “Bir nesne bir kez iade”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yabancı pointer ve çift iade reddedilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_free"
      },
      "dependencies": [
        "K772"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Bir nesne bir kez iade",
      "counterexample": "İç pointer ile free",
      "guestAcceptance": "Diğer nesnelerin kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_free_positive",
        "negativeName": "os_kernel_heap_free_negative",
        "expectedMarker": "TURKOS/OS/K775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir nesne bir kez iade girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İç pointer ile free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k773"
    },
    {
      "id": "K774",
      "number": 774,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.free",
      "stage": "negative",
      "title": "Heap nesne iadesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yabancı pointer ve çift iade reddedilir.",
      "action": "os_kernel_heap_free_negative testini oluştur: “İç pointer ile free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yabancı pointer ve çift iade reddedilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_free"
      },
      "dependencies": [
        "K773"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Bir nesne bir kez iade",
      "counterexample": "İç pointer ile free",
      "guestAcceptance": "Diğer nesnelerin kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_free_positive",
        "negativeName": "os_kernel_heap_free_negative",
        "expectedMarker": "TURKOS/OS/K775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İç pointer ile free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İç pointer ile free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k774"
    },
    {
      "id": "K775",
      "number": 775,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.free",
      "stage": "integration",
      "title": "Heap nesne iadesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yabancı pointer ve çift iade reddedilir.",
      "action": "Tek ürün Image'ında “Diğer nesnelerin kanaryaları korunur” kabulünü koştur. scripts/os-acceptance/kernel_heap.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yabancı pointer ve çift iade reddedilir",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_free"
      },
      "dependencies": [
        "K774"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Bir nesne bir kez iade",
      "counterexample": "İç pointer ile free",
      "guestAcceptance": "Diğer nesnelerin kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_free_positive",
        "negativeName": "os_kernel_heap_free_negative",
        "expectedMarker": "TURKOS/OS/K775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Diğer nesnelerin kanaryaları korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İç pointer ile free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k775"
    },
    {
      "id": "K776",
      "number": 776,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.pressure",
      "stage": "contract",
      "title": "Heap baskı politikası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Geri kazanım IRQ içinde uyumaz.",
      "action": "“Heap baskı politikası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Geri kazanım IRQ içinde uyumaz. “Dolu heap ve tanı çıktısı” kabulü ile “IRQ bağlamında bloklu tahsis” reddini aynı sözleşmeye bağla.",
      "invariant": "Geri kazanım IRQ içinde uyumaz",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_pressure"
      },
      "dependencies": [
        "K775"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dolu heap ve tanı çıktısı",
      "counterexample": "IRQ bağlamında bloklu tahsis",
      "guestAcceptance": "Sınırlı hata ile hizmet devam eder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_pressure_positive",
        "negativeName": "os_kernel_heap_pressure_negative",
        "expectedMarker": "TURKOS/OS/K780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Geri kazanım IRQ içinde uyumaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“IRQ bağlamında bloklu tahsis” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k776"
    },
    {
      "id": "K777",
      "number": 777,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.pressure",
      "stage": "implementation",
      "title": "Heap baskı politikası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Geri kazanım IRQ içinde uyumaz.",
      "action": "kernel/src/runtime/kernel_heap.rs hedefinde os_kernel_heap_pressure yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/heap.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Geri kazanım IRQ içinde uyumaz",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_pressure"
      },
      "dependencies": [
        "K776"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dolu heap ve tanı çıktısı",
      "counterexample": "IRQ bağlamında bloklu tahsis",
      "guestAcceptance": "Sınırlı hata ile hizmet devam eder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_pressure_positive",
        "negativeName": "os_kernel_heap_pressure_negative",
        "expectedMarker": "TURKOS/OS/K780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dolu heap ve tanı çıktısı ile IRQ bağlamında bloklu tahsis ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“IRQ bağlamında bloklu tahsis” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k777"
    },
    {
      "id": "K778",
      "number": 778,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.pressure",
      "stage": "positive",
      "title": "Heap baskı politikası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Geri kazanım IRQ içinde uyumaz.",
      "action": "os_kernel_heap_pressure_positive testini oluştur: “Dolu heap ve tanı çıktısı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Geri kazanım IRQ içinde uyumaz",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_pressure"
      },
      "dependencies": [
        "K777"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dolu heap ve tanı çıktısı",
      "counterexample": "IRQ bağlamında bloklu tahsis",
      "guestAcceptance": "Sınırlı hata ile hizmet devam eder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_pressure_positive",
        "negativeName": "os_kernel_heap_pressure_negative",
        "expectedMarker": "TURKOS/OS/K780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dolu heap ve tanı çıktısı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“IRQ bağlamında bloklu tahsis” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k778"
    },
    {
      "id": "K779",
      "number": 779,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.pressure",
      "stage": "negative",
      "title": "Heap baskı politikası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Geri kazanım IRQ içinde uyumaz.",
      "action": "os_kernel_heap_pressure_negative testini oluştur: “IRQ bağlamında bloklu tahsis”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Geri kazanım IRQ içinde uyumaz",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_pressure"
      },
      "dependencies": [
        "K778"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dolu heap ve tanı çıktısı",
      "counterexample": "IRQ bağlamında bloklu tahsis",
      "guestAcceptance": "Sınırlı hata ile hizmet devam eder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_pressure_positive",
        "negativeName": "os_kernel_heap_pressure_negative",
        "expectedMarker": "TURKOS/OS/K780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "IRQ bağlamında bloklu tahsis karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“IRQ bağlamında bloklu tahsis” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k779"
    },
    {
      "id": "K780",
      "number": 780,
      "phase": 2,
      "module": "kernel_heap",
      "feature": "kernel_heap.pressure",
      "stage": "integration",
      "title": "Heap baskı politikası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Geri kazanım IRQ içinde uyumaz.",
      "action": "Tek ürün Image'ında “Sınırlı hata ile hizmet devam eder” kabulünü koştur. scripts/os-acceptance/kernel_heap.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Geri kazanım IRQ içinde uyumaz",
      "source": {
        "target": "kernel/src/runtime/kernel_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_kernel_heap_pressure"
      },
      "dependencies": [
        "K779"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Dolu heap ve tanı çıktısı",
      "counterexample": "IRQ bağlamında bloklu tahsis",
      "guestAcceptance": "Sınırlı hata ile hizmet devam eder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/kernel_heap.rs",
        "harness": "scripts/os-acceptance/kernel_heap.mjs",
        "positiveName": "os_kernel_heap_pressure_positive",
        "negativeName": "os_kernel_heap_pressure_negative",
        "expectedMarker": "TURKOS/OS/K780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sınırlı hata ile hizmet devam eder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“IRQ bağlamında bloklu tahsis” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k780"
    },
    {
      "id": "K781",
      "number": 781,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.lease",
      "stage": "contract",
      "title": "Aygıta bağlı DMA lease · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Etkin DMA sıradan frame free olamaz.",
      "action": "“Aygıta bağlı DMA lease” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Etkin DMA sıradan frame free olamaz. “TX kuyruk sahibine bağlı tampon” kabulü ile “Kuyruk canlıyken sayfa iadesi” reddini aynı sözleşmeye bağla.",
      "invariant": "Etkin DMA sıradan frame free olamaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_lease"
      },
      "dependencies": [
        "K780"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "TX kuyruk sahibine bağlı tampon",
      "counterexample": "Kuyruk canlıyken sayfa iadesi",
      "guestAcceptance": "Reset onayı sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_lease_positive",
        "negativeName": "os_dma_memory_lease_negative",
        "expectedMarker": "TURKOS/OS/K785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Etkin DMA sıradan frame free olamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kuyruk canlıyken sayfa iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k781"
    },
    {
      "id": "K782",
      "number": 782,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.lease",
      "stage": "implementation",
      "title": "Aygıta bağlı DMA lease · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Etkin DMA sıradan frame free olamaz.",
      "action": "kernel/src/runtime/dma_memory.rs hedefinde os_dma_memory_lease yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Etkin DMA sıradan frame free olamaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_lease"
      },
      "dependencies": [
        "K781"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "TX kuyruk sahibine bağlı tampon",
      "counterexample": "Kuyruk canlıyken sayfa iadesi",
      "guestAcceptance": "Reset onayı sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_lease_positive",
        "negativeName": "os_dma_memory_lease_negative",
        "expectedMarker": "TURKOS/OS/K785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. TX kuyruk sahibine bağlı tampon ile Kuyruk canlıyken sayfa iadesi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kuyruk canlıyken sayfa iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k782"
    },
    {
      "id": "K783",
      "number": 783,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.lease",
      "stage": "positive",
      "title": "Aygıta bağlı DMA lease · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Etkin DMA sıradan frame free olamaz.",
      "action": "os_dma_memory_lease_positive testini oluştur: “TX kuyruk sahibine bağlı tampon”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Etkin DMA sıradan frame free olamaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_lease"
      },
      "dependencies": [
        "K782"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "TX kuyruk sahibine bağlı tampon",
      "counterexample": "Kuyruk canlıyken sayfa iadesi",
      "guestAcceptance": "Reset onayı sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_lease_positive",
        "negativeName": "os_dma_memory_lease_negative",
        "expectedMarker": "TURKOS/OS/K785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; TX kuyruk sahibine bağlı tampon girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kuyruk canlıyken sayfa iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k783"
    },
    {
      "id": "K784",
      "number": 784,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.lease",
      "stage": "negative",
      "title": "Aygıta bağlı DMA lease · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Etkin DMA sıradan frame free olamaz.",
      "action": "os_dma_memory_lease_negative testini oluştur: “Kuyruk canlıyken sayfa iadesi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Etkin DMA sıradan frame free olamaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_lease"
      },
      "dependencies": [
        "K783"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "TX kuyruk sahibine bağlı tampon",
      "counterexample": "Kuyruk canlıyken sayfa iadesi",
      "guestAcceptance": "Reset onayı sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_lease_positive",
        "negativeName": "os_dma_memory_lease_negative",
        "expectedMarker": "TURKOS/OS/K785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kuyruk canlıyken sayfa iadesi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kuyruk canlıyken sayfa iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k784"
    },
    {
      "id": "K785",
      "number": 785,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.lease",
      "stage": "integration",
      "title": "Aygıta bağlı DMA lease · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Etkin DMA sıradan frame free olamaz.",
      "action": "Tek ürün Image'ında “Reset onayı sonrası tek iade” kabulünü koştur. scripts/os-acceptance/dma_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Etkin DMA sıradan frame free olamaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_lease"
      },
      "dependencies": [
        "K784"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "TX kuyruk sahibine bağlı tampon",
      "counterexample": "Kuyruk canlıyken sayfa iadesi",
      "guestAcceptance": "Reset onayı sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_lease_positive",
        "negativeName": "os_dma_memory_lease_negative",
        "expectedMarker": "TURKOS/OS/K785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Reset onayı sonrası tek iade; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kuyruk canlıyken sayfa iadesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k785"
    },
    {
      "id": "K786",
      "number": 786,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.address",
      "stage": "contract",
      "title": "DMA fiziksel aralık denetimi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her descriptor sahipli tampon içinde kalır.",
      "action": "“DMA fiziksel aralık denetimi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her descriptor sahipli tampon içinde kalır. “Sayfa içi iki alt tampon” kabulü ile “Toplama taşması ve çapraz sayfa” reddini aynı sözleşmeye bağla.",
      "invariant": "Her descriptor sahipli tampon içinde kalır",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_address"
      },
      "dependencies": [
        "K785"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Sayfa içi iki alt tampon",
      "counterexample": "Toplama taşması ve çapraz sayfa",
      "guestAcceptance": "Bozuk descriptor aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_address_positive",
        "negativeName": "os_dma_memory_address_negative",
        "expectedMarker": "TURKOS/OS/K790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her descriptor sahipli tampon içinde kalır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Toplama taşması ve çapraz sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k786"
    },
    {
      "id": "K787",
      "number": 787,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.address",
      "stage": "implementation",
      "title": "DMA fiziksel aralık denetimi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her descriptor sahipli tampon içinde kalır.",
      "action": "kernel/src/runtime/dma_memory.rs hedefinde os_dma_memory_address yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her descriptor sahipli tampon içinde kalır",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_address"
      },
      "dependencies": [
        "K786"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Sayfa içi iki alt tampon",
      "counterexample": "Toplama taşması ve çapraz sayfa",
      "guestAcceptance": "Bozuk descriptor aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_address_positive",
        "negativeName": "os_dma_memory_address_negative",
        "expectedMarker": "TURKOS/OS/K790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Sayfa içi iki alt tampon ile Toplama taşması ve çapraz sayfa ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Toplama taşması ve çapraz sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k787"
    },
    {
      "id": "K788",
      "number": 788,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.address",
      "stage": "positive",
      "title": "DMA fiziksel aralık denetimi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her descriptor sahipli tampon içinde kalır.",
      "action": "os_dma_memory_address_positive testini oluştur: “Sayfa içi iki alt tampon”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her descriptor sahipli tampon içinde kalır",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_address"
      },
      "dependencies": [
        "K787"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Sayfa içi iki alt tampon",
      "counterexample": "Toplama taşması ve çapraz sayfa",
      "guestAcceptance": "Bozuk descriptor aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_address_positive",
        "negativeName": "os_dma_memory_address_negative",
        "expectedMarker": "TURKOS/OS/K790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Sayfa içi iki alt tampon girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Toplama taşması ve çapraz sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k788"
    },
    {
      "id": "K789",
      "number": 789,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.address",
      "stage": "negative",
      "title": "DMA fiziksel aralık denetimi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her descriptor sahipli tampon içinde kalır.",
      "action": "os_dma_memory_address_negative testini oluştur: “Toplama taşması ve çapraz sayfa”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her descriptor sahipli tampon içinde kalır",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_address"
      },
      "dependencies": [
        "K788"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Sayfa içi iki alt tampon",
      "counterexample": "Toplama taşması ve çapraz sayfa",
      "guestAcceptance": "Bozuk descriptor aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_address_positive",
        "negativeName": "os_dma_memory_address_negative",
        "expectedMarker": "TURKOS/OS/K790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Toplama taşması ve çapraz sayfa karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Toplama taşması ve çapraz sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k789"
    },
    {
      "id": "K790",
      "number": 790,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.address",
      "stage": "integration",
      "title": "DMA fiziksel aralık denetimi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Her descriptor sahipli tampon içinde kalır.",
      "action": "Tek ürün Image'ında “Bozuk descriptor aygıta sunulmaz” kabulünü koştur. scripts/os-acceptance/dma_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her descriptor sahipli tampon içinde kalır",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_address"
      },
      "dependencies": [
        "K789"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Sayfa içi iki alt tampon",
      "counterexample": "Toplama taşması ve çapraz sayfa",
      "guestAcceptance": "Bozuk descriptor aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_address_positive",
        "negativeName": "os_dma_memory_address_negative",
        "expectedMarker": "TURKOS/OS/K790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk descriptor aygıta sunulmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Toplama taşması ve çapraz sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k790"
    },
    {
      "id": "K791",
      "number": 791,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.ordering",
      "stage": "contract",
      "title": "DMA bellek bariyerleri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yayımlama veri yazısından sonra gelir.",
      "action": "“DMA bellek bariyerleri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yayımlama veri yazısından sonra gelir. “Payload sonra avail index” kabulü ile “Index payload öncesi görünür” reddini aynı sözleşmeye bağla.",
      "invariant": "Yayımlama veri yazısından sonra gelir",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_ordering"
      },
      "dependencies": [
        "K790"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Payload sonra avail index",
      "counterexample": "Index payload öncesi görünür",
      "guestAcceptance": "RX TX tamamlama tanıkları doğru sıra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_ordering_positive",
        "negativeName": "os_dma_memory_ordering_negative",
        "expectedMarker": "TURKOS/OS/K795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yayımlama veri yazısından sonra gelir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Index payload öncesi görünür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k791"
    },
    {
      "id": "K792",
      "number": 792,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.ordering",
      "stage": "implementation",
      "title": "DMA bellek bariyerleri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yayımlama veri yazısından sonra gelir.",
      "action": "kernel/src/runtime/dma_memory.rs hedefinde os_dma_memory_ordering yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yayımlama veri yazısından sonra gelir",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_ordering"
      },
      "dependencies": [
        "K791"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Payload sonra avail index",
      "counterexample": "Index payload öncesi görünür",
      "guestAcceptance": "RX TX tamamlama tanıkları doğru sıra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_ordering_positive",
        "negativeName": "os_dma_memory_ordering_negative",
        "expectedMarker": "TURKOS/OS/K795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Payload sonra avail index ile Index payload öncesi görünür ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Index payload öncesi görünür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k792"
    },
    {
      "id": "K793",
      "number": 793,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.ordering",
      "stage": "positive",
      "title": "DMA bellek bariyerleri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yayımlama veri yazısından sonra gelir.",
      "action": "os_dma_memory_ordering_positive testini oluştur: “Payload sonra avail index”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yayımlama veri yazısından sonra gelir",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_ordering"
      },
      "dependencies": [
        "K792"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Payload sonra avail index",
      "counterexample": "Index payload öncesi görünür",
      "guestAcceptance": "RX TX tamamlama tanıkları doğru sıra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_ordering_positive",
        "negativeName": "os_dma_memory_ordering_negative",
        "expectedMarker": "TURKOS/OS/K795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Payload sonra avail index girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Index payload öncesi görünür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k793"
    },
    {
      "id": "K794",
      "number": 794,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.ordering",
      "stage": "negative",
      "title": "DMA bellek bariyerleri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yayımlama veri yazısından sonra gelir.",
      "action": "os_dma_memory_ordering_negative testini oluştur: “Index payload öncesi görünür”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yayımlama veri yazısından sonra gelir",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_ordering"
      },
      "dependencies": [
        "K793"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Payload sonra avail index",
      "counterexample": "Index payload öncesi görünür",
      "guestAcceptance": "RX TX tamamlama tanıkları doğru sıra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_ordering_positive",
        "negativeName": "os_dma_memory_ordering_negative",
        "expectedMarker": "TURKOS/OS/K795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Index payload öncesi görünür karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Index payload öncesi görünür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k794"
    },
    {
      "id": "K795",
      "number": 795,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.ordering",
      "stage": "integration",
      "title": "DMA bellek bariyerleri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Yayımlama veri yazısından sonra gelir.",
      "action": "Tek ürün Image'ında “RX TX tamamlama tanıkları doğru sıra” kabulünü koştur. scripts/os-acceptance/dma_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yayımlama veri yazısından sonra gelir",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_ordering"
      },
      "dependencies": [
        "K794"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Payload sonra avail index",
      "counterexample": "Index payload öncesi görünür",
      "guestAcceptance": "RX TX tamamlama tanıkları doğru sıra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_ordering_positive",
        "negativeName": "os_dma_memory_ordering_negative",
        "expectedMarker": "TURKOS/OS/K795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "RX TX tamamlama tanıkları doğru sıra; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Index payload öncesi görünür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k795"
    },
    {
      "id": "K796",
      "number": 796,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.reset",
      "stage": "contract",
      "title": "Reset sonrası DMA karantinası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Aygıt durduğu ölçülmeden pin bırakılmaz.",
      "action": "“Reset sonrası DMA karantinası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aygıt durduğu ölçülmeden pin bırakılmaz. “Reset readback sıfır” kabulü ile “Yanıtsız reset” reddini aynı sözleşmeye bağla.",
      "invariant": "Aygıt durduğu ölçülmeden pin bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_reset"
      },
      "dependencies": [
        "K795"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Reset readback sıfır",
      "counterexample": "Yanıtsız reset",
      "guestAcceptance": "Kaynak tutulur ve açık hata raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_reset_positive",
        "negativeName": "os_dma_memory_reset_negative",
        "expectedMarker": "TURKOS/OS/K800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aygıt durduğu ölçülmeden pin bırakılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanıtsız reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k796"
    },
    {
      "id": "K797",
      "number": 797,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.reset",
      "stage": "implementation",
      "title": "Reset sonrası DMA karantinası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Aygıt durduğu ölçülmeden pin bırakılmaz.",
      "action": "kernel/src/runtime/dma_memory.rs hedefinde os_dma_memory_reset yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aygıt durduğu ölçülmeden pin bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_reset"
      },
      "dependencies": [
        "K796"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Reset readback sıfır",
      "counterexample": "Yanıtsız reset",
      "guestAcceptance": "Kaynak tutulur ve açık hata raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_reset_positive",
        "negativeName": "os_dma_memory_reset_negative",
        "expectedMarker": "TURKOS/OS/K800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Reset readback sıfır ile Yanıtsız reset ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanıtsız reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k797"
    },
    {
      "id": "K798",
      "number": 798,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.reset",
      "stage": "positive",
      "title": "Reset sonrası DMA karantinası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Aygıt durduğu ölçülmeden pin bırakılmaz.",
      "action": "os_dma_memory_reset_positive testini oluştur: “Reset readback sıfır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aygıt durduğu ölçülmeden pin bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_reset"
      },
      "dependencies": [
        "K797"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Reset readback sıfır",
      "counterexample": "Yanıtsız reset",
      "guestAcceptance": "Kaynak tutulur ve açık hata raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_reset_positive",
        "negativeName": "os_dma_memory_reset_negative",
        "expectedMarker": "TURKOS/OS/K800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Reset readback sıfır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanıtsız reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k798"
    },
    {
      "id": "K799",
      "number": 799,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.reset",
      "stage": "negative",
      "title": "Reset sonrası DMA karantinası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Aygıt durduğu ölçülmeden pin bırakılmaz.",
      "action": "os_dma_memory_reset_negative testini oluştur: “Yanıtsız reset”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aygıt durduğu ölçülmeden pin bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_reset"
      },
      "dependencies": [
        "K798"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Reset readback sıfır",
      "counterexample": "Yanıtsız reset",
      "guestAcceptance": "Kaynak tutulur ve açık hata raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_reset_positive",
        "negativeName": "os_dma_memory_reset_negative",
        "expectedMarker": "TURKOS/OS/K800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanıtsız reset karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanıtsız reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k799"
    },
    {
      "id": "K800",
      "number": 800,
      "phase": 2,
      "module": "dma_memory",
      "feature": "dma_memory.reset",
      "stage": "integration",
      "title": "Reset sonrası DMA karantinası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Deney ayırıcıları ürün yükleri için yeterli değildir. Sayfa sahipliği ve tahsis geri alması bütün katmanların temelidir. Bu hamlenin koruduğu değişmez: Aygıt durduğu ölçülmeden pin bırakılmaz.",
      "action": "Tek ürün Image'ında “Kaynak tutulur ve açık hata raporlanır” kabulünü koştur. scripts/os-acceptance/dma_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aygıt durduğu ölçülmeden pin bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/dma_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_dma_memory_reset"
      },
      "dependencies": [
        "K799"
      ],
      "phasePrerequisites": [
        1
      ],
      "positive": "Reset readback sıfır",
      "counterexample": "Yanıtsız reset",
      "guestAcceptance": "Kaynak tutulur ve açık hata raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/dma_memory.rs",
        "harness": "scripts/os-acceptance/dma_memory.mjs",
        "positiveName": "os_dma_memory_reset_positive",
        "negativeName": "os_dma_memory_reset_negative",
        "expectedMarker": "TURKOS/OS/K800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kaynak tutulur ve açık hata raporlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanıtsız reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-02#k800"
    },
    {
      "id": "K801",
      "number": 801,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.levels",
      "stage": "contract",
      "title": "AArch64 tablo düzeyleri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İndeks ve descriptor bitleri sınırlıdır.",
      "action": "“AArch64 tablo düzeyleri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İndeks ve descriptor bitleri sınırlıdır. “Dört düzey 4 KiB yürüyüş” kabulü ile “Ayrılmış descriptor biti” reddini aynı sözleşmeye bağla.",
      "invariant": "İndeks ve descriptor bitleri sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_levels"
      },
      "dependencies": [],
      "phasePrerequisites": [
        2
      ],
      "positive": "Dört düzey 4 KiB yürüyüş",
      "counterexample": "Ayrılmış descriptor biti",
      "guestAcceptance": "Bilinen VA doğru PA üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_levels_positive",
        "negativeName": "os_page_tables_levels_negative",
        "expectedMarker": "TURKOS/OS/K805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İndeks ve descriptor bitleri sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ayrılmış descriptor biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k801"
    },
    {
      "id": "K802",
      "number": 802,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.levels",
      "stage": "implementation",
      "title": "AArch64 tablo düzeyleri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İndeks ve descriptor bitleri sınırlıdır.",
      "action": "kernel/src/arch/aarch64/page_tables.rs hedefinde os_page_tables_levels yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/paging.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İndeks ve descriptor bitleri sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_levels"
      },
      "dependencies": [
        "K801"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Dört düzey 4 KiB yürüyüş",
      "counterexample": "Ayrılmış descriptor biti",
      "guestAcceptance": "Bilinen VA doğru PA üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_levels_positive",
        "negativeName": "os_page_tables_levels_negative",
        "expectedMarker": "TURKOS/OS/K805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dört düzey 4 KiB yürüyüş ile Ayrılmış descriptor biti ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ayrılmış descriptor biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k802"
    },
    {
      "id": "K803",
      "number": 803,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.levels",
      "stage": "positive",
      "title": "AArch64 tablo düzeyleri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İndeks ve descriptor bitleri sınırlıdır.",
      "action": "os_page_tables_levels_positive testini oluştur: “Dört düzey 4 KiB yürüyüş”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İndeks ve descriptor bitleri sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_levels"
      },
      "dependencies": [
        "K802"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Dört düzey 4 KiB yürüyüş",
      "counterexample": "Ayrılmış descriptor biti",
      "guestAcceptance": "Bilinen VA doğru PA üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_levels_positive",
        "negativeName": "os_page_tables_levels_negative",
        "expectedMarker": "TURKOS/OS/K805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dört düzey 4 KiB yürüyüş girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ayrılmış descriptor biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k803"
    },
    {
      "id": "K804",
      "number": 804,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.levels",
      "stage": "negative",
      "title": "AArch64 tablo düzeyleri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İndeks ve descriptor bitleri sınırlıdır.",
      "action": "os_page_tables_levels_negative testini oluştur: “Ayrılmış descriptor biti”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İndeks ve descriptor bitleri sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_levels"
      },
      "dependencies": [
        "K803"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Dört düzey 4 KiB yürüyüş",
      "counterexample": "Ayrılmış descriptor biti",
      "guestAcceptance": "Bilinen VA doğru PA üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_levels_positive",
        "negativeName": "os_page_tables_levels_negative",
        "expectedMarker": "TURKOS/OS/K805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ayrılmış descriptor biti karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ayrılmış descriptor biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k804"
    },
    {
      "id": "K805",
      "number": 805,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.levels",
      "stage": "integration",
      "title": "AArch64 tablo düzeyleri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İndeks ve descriptor bitleri sınırlıdır.",
      "action": "Tek ürün Image'ında “Bilinen VA doğru PA üretir” kabulünü koştur. scripts/os-acceptance/page_tables.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İndeks ve descriptor bitleri sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_levels"
      },
      "dependencies": [
        "K804"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Dört düzey 4 KiB yürüyüş",
      "counterexample": "Ayrılmış descriptor biti",
      "guestAcceptance": "Bilinen VA doğru PA üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_levels_positive",
        "negativeName": "os_page_tables_levels_negative",
        "expectedMarker": "TURKOS/OS/K805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bilinen VA doğru PA üretir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ayrılmış descriptor biti” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k805"
    },
    {
      "id": "K806",
      "number": 806,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.allocate",
      "stage": "contract",
      "title": "Tablo sayfası tahsisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Her tablo tek metadata sahibindedir.",
      "action": "“Tablo sayfası tahsisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her tablo tek metadata sahibindedir. “Üç boş ara tablo” kabulü ile “İkinci tabloda ENOSPC” reddini aynı sözleşmeye bağla.",
      "invariant": "Her tablo tek metadata sahibindedir",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_allocate"
      },
      "dependencies": [
        "K805"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç boş ara tablo",
      "counterexample": "İkinci tabloda ENOSPC",
      "guestAcceptance": "Yayımlanmamış tablolar geri döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_allocate_positive",
        "negativeName": "os_page_tables_allocate_negative",
        "expectedMarker": "TURKOS/OS/K810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her tablo tek metadata sahibindedir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İkinci tabloda ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k806"
    },
    {
      "id": "K807",
      "number": 807,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.allocate",
      "stage": "implementation",
      "title": "Tablo sayfası tahsisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Her tablo tek metadata sahibindedir.",
      "action": "kernel/src/arch/aarch64/page_tables.rs hedefinde os_page_tables_allocate yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/paging.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her tablo tek metadata sahibindedir",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_allocate"
      },
      "dependencies": [
        "K806"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç boş ara tablo",
      "counterexample": "İkinci tabloda ENOSPC",
      "guestAcceptance": "Yayımlanmamış tablolar geri döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_allocate_positive",
        "negativeName": "os_page_tables_allocate_negative",
        "expectedMarker": "TURKOS/OS/K810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç boş ara tablo ile İkinci tabloda ENOSPC ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İkinci tabloda ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k807"
    },
    {
      "id": "K808",
      "number": 808,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.allocate",
      "stage": "positive",
      "title": "Tablo sayfası tahsisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Her tablo tek metadata sahibindedir.",
      "action": "os_page_tables_allocate_positive testini oluştur: “Üç boş ara tablo”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her tablo tek metadata sahibindedir",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_allocate"
      },
      "dependencies": [
        "K807"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç boş ara tablo",
      "counterexample": "İkinci tabloda ENOSPC",
      "guestAcceptance": "Yayımlanmamış tablolar geri döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_allocate_positive",
        "negativeName": "os_page_tables_allocate_negative",
        "expectedMarker": "TURKOS/OS/K810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç boş ara tablo girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İkinci tabloda ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k808"
    },
    {
      "id": "K809",
      "number": 809,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.allocate",
      "stage": "negative",
      "title": "Tablo sayfası tahsisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Her tablo tek metadata sahibindedir.",
      "action": "os_page_tables_allocate_negative testini oluştur: “İkinci tabloda ENOSPC”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her tablo tek metadata sahibindedir",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_allocate"
      },
      "dependencies": [
        "K808"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç boş ara tablo",
      "counterexample": "İkinci tabloda ENOSPC",
      "guestAcceptance": "Yayımlanmamış tablolar geri döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_allocate_positive",
        "negativeName": "os_page_tables_allocate_negative",
        "expectedMarker": "TURKOS/OS/K810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İkinci tabloda ENOSPC karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İkinci tabloda ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k809"
    },
    {
      "id": "K810",
      "number": 810,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.allocate",
      "stage": "integration",
      "title": "Tablo sayfası tahsisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Her tablo tek metadata sahibindedir.",
      "action": "Tek ürün Image'ında “Yayımlanmamış tablolar geri döner” kabulünü koştur. scripts/os-acceptance/page_tables.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her tablo tek metadata sahibindedir",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_allocate"
      },
      "dependencies": [
        "K809"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç boş ara tablo",
      "counterexample": "İkinci tabloda ENOSPC",
      "guestAcceptance": "Yayımlanmamış tablolar geri döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_allocate_positive",
        "negativeName": "os_page_tables_allocate_negative",
        "expectedMarker": "TURKOS/OS/K810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yayımlanmamış tablolar geri döner; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İkinci tabloda ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k810"
    },
    {
      "id": "K811",
      "number": 811,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.permissions",
      "stage": "contract",
      "title": "RW RX ve PXN UXN · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aynı kullanıcı sayfası W ve X olmaz.",
      "action": "“RW RX ve PXN UXN” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aynı kullanıcı sayfası W ve X olmaz. “Kod RX veri RW” kabulü ile “RWX haritalama” reddini aynı sözleşmeye bağla.",
      "invariant": "Aynı kullanıcı sayfası W ve X olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_permissions"
      },
      "dependencies": [
        "K810"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Kod RX veri RW",
      "counterexample": "RWX haritalama",
      "guestAcceptance": "Konukta kod yazısı ve veri yürütme fault",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_permissions_positive",
        "negativeName": "os_page_tables_permissions_negative",
        "expectedMarker": "TURKOS/OS/K815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aynı kullanıcı sayfası W ve X olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“RWX haritalama” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k811"
    },
    {
      "id": "K812",
      "number": 812,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.permissions",
      "stage": "implementation",
      "title": "RW RX ve PXN UXN · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aynı kullanıcı sayfası W ve X olmaz.",
      "action": "kernel/src/arch/aarch64/page_tables.rs hedefinde os_page_tables_permissions yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/paging.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aynı kullanıcı sayfası W ve X olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_permissions"
      },
      "dependencies": [
        "K811"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Kod RX veri RW",
      "counterexample": "RWX haritalama",
      "guestAcceptance": "Konukta kod yazısı ve veri yürütme fault",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_permissions_positive",
        "negativeName": "os_page_tables_permissions_negative",
        "expectedMarker": "TURKOS/OS/K815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kod RX veri RW ile RWX haritalama ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“RWX haritalama” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k812"
    },
    {
      "id": "K813",
      "number": 813,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.permissions",
      "stage": "positive",
      "title": "RW RX ve PXN UXN · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aynı kullanıcı sayfası W ve X olmaz.",
      "action": "os_page_tables_permissions_positive testini oluştur: “Kod RX veri RW”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aynı kullanıcı sayfası W ve X olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_permissions"
      },
      "dependencies": [
        "K812"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Kod RX veri RW",
      "counterexample": "RWX haritalama",
      "guestAcceptance": "Konukta kod yazısı ve veri yürütme fault",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_permissions_positive",
        "negativeName": "os_page_tables_permissions_negative",
        "expectedMarker": "TURKOS/OS/K815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kod RX veri RW girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“RWX haritalama” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k813"
    },
    {
      "id": "K814",
      "number": 814,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.permissions",
      "stage": "negative",
      "title": "RW RX ve PXN UXN · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aynı kullanıcı sayfası W ve X olmaz.",
      "action": "os_page_tables_permissions_negative testini oluştur: “RWX haritalama”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aynı kullanıcı sayfası W ve X olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_permissions"
      },
      "dependencies": [
        "K813"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Kod RX veri RW",
      "counterexample": "RWX haritalama",
      "guestAcceptance": "Konukta kod yazısı ve veri yürütme fault",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_permissions_positive",
        "negativeName": "os_page_tables_permissions_negative",
        "expectedMarker": "TURKOS/OS/K815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "RWX haritalama karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“RWX haritalama” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k814"
    },
    {
      "id": "K815",
      "number": 815,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.permissions",
      "stage": "integration",
      "title": "RW RX ve PXN UXN · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aynı kullanıcı sayfası W ve X olmaz.",
      "action": "Tek ürün Image'ında “Konukta kod yazısı ve veri yürütme fault” kabulünü koştur. scripts/os-acceptance/page_tables.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aynı kullanıcı sayfası W ve X olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_permissions"
      },
      "dependencies": [
        "K814"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Kod RX veri RW",
      "counterexample": "RWX haritalama",
      "guestAcceptance": "Konukta kod yazısı ve veri yürütme fault",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_permissions_positive",
        "negativeName": "os_page_tables_permissions_negative",
        "expectedMarker": "TURKOS/OS/K815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Konukta kod yazısı ve veri yürütme fault; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“RWX haritalama” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k815"
    },
    {
      "id": "K816",
      "number": 816,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.destroy",
      "stage": "contract",
      "title": "Tablo ağacı imhası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: TLB emekliliği tamamlanmadan tablo iade yok.",
      "action": "“Tablo ağacı imhası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: TLB emekliliği tamamlanmadan tablo iade yok. “Boş adres alanı kapatılır” kabulü ile “Etkin TTBR tablosunu free” reddini aynı sözleşmeye bağla.",
      "invariant": "TLB emekliliği tamamlanmadan tablo iade yok",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_destroy"
      },
      "dependencies": [
        "K815"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Boş adres alanı kapatılır",
      "counterexample": "Etkin TTBR tablosunu free",
      "guestAcceptance": "Sırayla detach flush ve iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_destroy_positive",
        "negativeName": "os_page_tables_destroy_negative",
        "expectedMarker": "TURKOS/OS/K820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu TLB emekliliği tamamlanmadan tablo iade yok kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Etkin TTBR tablosunu free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k816"
    },
    {
      "id": "K817",
      "number": 817,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.destroy",
      "stage": "implementation",
      "title": "Tablo ağacı imhası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: TLB emekliliği tamamlanmadan tablo iade yok.",
      "action": "kernel/src/arch/aarch64/page_tables.rs hedefinde os_page_tables_destroy yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/paging.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "TLB emekliliği tamamlanmadan tablo iade yok",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_destroy"
      },
      "dependencies": [
        "K816"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Boş adres alanı kapatılır",
      "counterexample": "Etkin TTBR tablosunu free",
      "guestAcceptance": "Sırayla detach flush ve iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_destroy_positive",
        "negativeName": "os_page_tables_destroy_negative",
        "expectedMarker": "TURKOS/OS/K820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş adres alanı kapatılır ile Etkin TTBR tablosunu free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Etkin TTBR tablosunu free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k817"
    },
    {
      "id": "K818",
      "number": 818,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.destroy",
      "stage": "positive",
      "title": "Tablo ağacı imhası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: TLB emekliliği tamamlanmadan tablo iade yok.",
      "action": "os_page_tables_destroy_positive testini oluştur: “Boş adres alanı kapatılır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "TLB emekliliği tamamlanmadan tablo iade yok",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_destroy"
      },
      "dependencies": [
        "K817"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Boş adres alanı kapatılır",
      "counterexample": "Etkin TTBR tablosunu free",
      "guestAcceptance": "Sırayla detach flush ve iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_destroy_positive",
        "negativeName": "os_page_tables_destroy_negative",
        "expectedMarker": "TURKOS/OS/K820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş adres alanı kapatılır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Etkin TTBR tablosunu free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k818"
    },
    {
      "id": "K819",
      "number": 819,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.destroy",
      "stage": "negative",
      "title": "Tablo ağacı imhası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: TLB emekliliği tamamlanmadan tablo iade yok.",
      "action": "os_page_tables_destroy_negative testini oluştur: “Etkin TTBR tablosunu free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "TLB emekliliği tamamlanmadan tablo iade yok",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_destroy"
      },
      "dependencies": [
        "K818"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Boş adres alanı kapatılır",
      "counterexample": "Etkin TTBR tablosunu free",
      "guestAcceptance": "Sırayla detach flush ve iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_destroy_positive",
        "negativeName": "os_page_tables_destroy_negative",
        "expectedMarker": "TURKOS/OS/K820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Etkin TTBR tablosunu free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Etkin TTBR tablosunu free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k819"
    },
    {
      "id": "K820",
      "number": 820,
      "phase": 3,
      "module": "page_tables",
      "feature": "page_tables.destroy",
      "stage": "integration",
      "title": "Tablo ağacı imhası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: TLB emekliliği tamamlanmadan tablo iade yok.",
      "action": "Tek ürün Image'ında “Sırayla detach flush ve iade” kabulünü koştur. scripts/os-acceptance/page_tables.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "TLB emekliliği tamamlanmadan tablo iade yok",
      "source": {
        "target": "kernel/src/arch/aarch64/page_tables.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/paging.rs",
        "existingReferenceSha256": "d9eed1d36d00a9f4c9cff733e9573bbcf6cab52653be48dd910df4ad99c12e08",
        "symbol": "os_page_tables_destroy"
      },
      "dependencies": [
        "K819"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Boş adres alanı kapatılır",
      "counterexample": "Etkin TTBR tablosunu free",
      "guestAcceptance": "Sırayla detach flush ve iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_tables.rs",
        "harness": "scripts/os-acceptance/page_tables.mjs",
        "positiveName": "os_page_tables_destroy_positive",
        "negativeName": "os_page_tables_destroy_negative",
        "expectedMarker": "TURKOS/OS/K820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sırayla detach flush ve iade; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Etkin TTBR tablosunu free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k820"
    },
    {
      "id": "K821",
      "number": 821,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.create",
      "stage": "contract",
      "title": "Adres alanı oluşturma · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kimlik ve kök atomik yayımlanır.",
      "action": "“Adres alanı oluşturma” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kimlik ve kök atomik yayımlanır. “A ve B farklı kök” kabulü ile “Kök tahsisinde hata” reddini aynı sözleşmeye bağla.",
      "invariant": "Kimlik ve kök atomik yayımlanır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_create"
      },
      "dependencies": [
        "K820"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A ve B farklı kök",
      "counterexample": "Kök tahsisinde hata",
      "guestAcceptance": "Başarısız oluşturma kayıt bırakmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_create_positive",
        "negativeName": "os_address_spaces_create_negative",
        "expectedMarker": "TURKOS/OS/K825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kimlik ve kök atomik yayımlanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kök tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k821"
    },
    {
      "id": "K822",
      "number": 822,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.create",
      "stage": "implementation",
      "title": "Adres alanı oluşturma · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kimlik ve kök atomik yayımlanır.",
      "action": "kernel/src/runtime/address_spaces.rs hedefinde os_address_spaces_create yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/asid.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kimlik ve kök atomik yayımlanır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_create"
      },
      "dependencies": [
        "K821"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A ve B farklı kök",
      "counterexample": "Kök tahsisinde hata",
      "guestAcceptance": "Başarısız oluşturma kayıt bırakmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_create_positive",
        "negativeName": "os_address_spaces_create_negative",
        "expectedMarker": "TURKOS/OS/K825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. A ve B farklı kök ile Kök tahsisinde hata ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kök tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k822"
    },
    {
      "id": "K823",
      "number": 823,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.create",
      "stage": "positive",
      "title": "Adres alanı oluşturma · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kimlik ve kök atomik yayımlanır.",
      "action": "os_address_spaces_create_positive testini oluştur: “A ve B farklı kök”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kimlik ve kök atomik yayımlanır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_create"
      },
      "dependencies": [
        "K822"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A ve B farklı kök",
      "counterexample": "Kök tahsisinde hata",
      "guestAcceptance": "Başarısız oluşturma kayıt bırakmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_create_positive",
        "negativeName": "os_address_spaces_create_negative",
        "expectedMarker": "TURKOS/OS/K825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; A ve B farklı kök girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kök tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k823"
    },
    {
      "id": "K824",
      "number": 824,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.create",
      "stage": "negative",
      "title": "Adres alanı oluşturma · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kimlik ve kök atomik yayımlanır.",
      "action": "os_address_spaces_create_negative testini oluştur: “Kök tahsisinde hata”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kimlik ve kök atomik yayımlanır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_create"
      },
      "dependencies": [
        "K823"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A ve B farklı kök",
      "counterexample": "Kök tahsisinde hata",
      "guestAcceptance": "Başarısız oluşturma kayıt bırakmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_create_positive",
        "negativeName": "os_address_spaces_create_negative",
        "expectedMarker": "TURKOS/OS/K825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kök tahsisinde hata karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kök tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k824"
    },
    {
      "id": "K825",
      "number": 825,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.create",
      "stage": "integration",
      "title": "Adres alanı oluşturma · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kimlik ve kök atomik yayımlanır.",
      "action": "Tek ürün Image'ında “Başarısız oluşturma kayıt bırakmaz” kabulünü koştur. scripts/os-acceptance/address_spaces.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kimlik ve kök atomik yayımlanır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_create"
      },
      "dependencies": [
        "K824"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A ve B farklı kök",
      "counterexample": "Kök tahsisinde hata",
      "guestAcceptance": "Başarısız oluşturma kayıt bırakmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_create_positive",
        "negativeName": "os_address_spaces_create_negative",
        "expectedMarker": "TURKOS/OS/K825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başarısız oluşturma kayıt bırakmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kök tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k825"
    },
    {
      "id": "K826",
      "number": 826,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.switch",
      "stage": "contract",
      "title": "TTBR ASID bağlam geçişi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kök doğru ASID ve süreçle eşleşir.",
      "action": "“TTBR ASID bağlam geçişi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kök doğru ASID ve süreçle eşleşir. “A B A geçiş dizisi” kabulü ile “Yabancı kök ile eski ASID” reddini aynı sözleşmeye bağla.",
      "invariant": "Kök doğru ASID ve süreçle eşleşir",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_switch"
      },
      "dependencies": [
        "K825"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B A geçiş dizisi",
      "counterexample": "Yabancı kök ile eski ASID",
      "guestAcceptance": "A verisi B adresinde görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_switch_positive",
        "negativeName": "os_address_spaces_switch_negative",
        "expectedMarker": "TURKOS/OS/K830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kök doğru ASID ve süreçle eşleşir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı kök ile eski ASID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k826"
    },
    {
      "id": "K827",
      "number": 827,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.switch",
      "stage": "implementation",
      "title": "TTBR ASID bağlam geçişi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kök doğru ASID ve süreçle eşleşir.",
      "action": "kernel/src/runtime/address_spaces.rs hedefinde os_address_spaces_switch yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/asid.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kök doğru ASID ve süreçle eşleşir",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_switch"
      },
      "dependencies": [
        "K826"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B A geçiş dizisi",
      "counterexample": "Yabancı kök ile eski ASID",
      "guestAcceptance": "A verisi B adresinde görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_switch_positive",
        "negativeName": "os_address_spaces_switch_negative",
        "expectedMarker": "TURKOS/OS/K830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. A B A geçiş dizisi ile Yabancı kök ile eski ASID ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı kök ile eski ASID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k827"
    },
    {
      "id": "K828",
      "number": 828,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.switch",
      "stage": "positive",
      "title": "TTBR ASID bağlam geçişi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kök doğru ASID ve süreçle eşleşir.",
      "action": "os_address_spaces_switch_positive testini oluştur: “A B A geçiş dizisi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kök doğru ASID ve süreçle eşleşir",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_switch"
      },
      "dependencies": [
        "K827"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B A geçiş dizisi",
      "counterexample": "Yabancı kök ile eski ASID",
      "guestAcceptance": "A verisi B adresinde görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_switch_positive",
        "negativeName": "os_address_spaces_switch_negative",
        "expectedMarker": "TURKOS/OS/K830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; A B A geçiş dizisi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı kök ile eski ASID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k828"
    },
    {
      "id": "K829",
      "number": 829,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.switch",
      "stage": "negative",
      "title": "TTBR ASID bağlam geçişi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kök doğru ASID ve süreçle eşleşir.",
      "action": "os_address_spaces_switch_negative testini oluştur: “Yabancı kök ile eski ASID”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kök doğru ASID ve süreçle eşleşir",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_switch"
      },
      "dependencies": [
        "K828"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B A geçiş dizisi",
      "counterexample": "Yabancı kök ile eski ASID",
      "guestAcceptance": "A verisi B adresinde görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_switch_positive",
        "negativeName": "os_address_spaces_switch_negative",
        "expectedMarker": "TURKOS/OS/K830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı kök ile eski ASID karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı kök ile eski ASID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k829"
    },
    {
      "id": "K830",
      "number": 830,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.switch",
      "stage": "integration",
      "title": "TTBR ASID bağlam geçişi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kök doğru ASID ve süreçle eşleşir.",
      "action": "Tek ürün Image'ında “A verisi B adresinde görünmez” kabulünü koştur. scripts/os-acceptance/address_spaces.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kök doğru ASID ve süreçle eşleşir",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_switch"
      },
      "dependencies": [
        "K829"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B A geçiş dizisi",
      "counterexample": "Yabancı kök ile eski ASID",
      "guestAcceptance": "A verisi B adresinde görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_switch_positive",
        "negativeName": "os_address_spaces_switch_negative",
        "expectedMarker": "TURKOS/OS/K830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "A verisi B adresinde görünmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı kök ile eski ASID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k830"
    },
    {
      "id": "K831",
      "number": 831,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.recycle",
      "stage": "contract",
      "title": "ASID nesil geri dönüşümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeniden kullanım hedefli TLBI ister.",
      "action": "“ASID nesil geri dönüşümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yeniden kullanım hedefli TLBI ister. “Az ASID ile çok süreç” kabulü ile “Nesil taşması” reddini aynı sözleşmeye bağla.",
      "invariant": "Yeniden kullanım hedefli TLBI ister",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_recycle"
      },
      "dependencies": [
        "K830"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Az ASID ile çok süreç",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Eski TLB çevirisi yeni sürece sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_recycle_positive",
        "negativeName": "os_address_spaces_recycle_negative",
        "expectedMarker": "TURKOS/OS/K835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yeniden kullanım hedefli TLBI ister kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k831"
    },
    {
      "id": "K832",
      "number": 832,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.recycle",
      "stage": "implementation",
      "title": "ASID nesil geri dönüşümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeniden kullanım hedefli TLBI ister.",
      "action": "kernel/src/runtime/address_spaces.rs hedefinde os_address_spaces_recycle yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/asid.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yeniden kullanım hedefli TLBI ister",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_recycle"
      },
      "dependencies": [
        "K831"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Az ASID ile çok süreç",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Eski TLB çevirisi yeni sürece sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_recycle_positive",
        "negativeName": "os_address_spaces_recycle_negative",
        "expectedMarker": "TURKOS/OS/K835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Az ASID ile çok süreç ile Nesil taşması ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k832"
    },
    {
      "id": "K833",
      "number": 833,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.recycle",
      "stage": "positive",
      "title": "ASID nesil geri dönüşümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeniden kullanım hedefli TLBI ister.",
      "action": "os_address_spaces_recycle_positive testini oluştur: “Az ASID ile çok süreç”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yeniden kullanım hedefli TLBI ister",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_recycle"
      },
      "dependencies": [
        "K832"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Az ASID ile çok süreç",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Eski TLB çevirisi yeni sürece sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_recycle_positive",
        "negativeName": "os_address_spaces_recycle_negative",
        "expectedMarker": "TURKOS/OS/K835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Az ASID ile çok süreç girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k833"
    },
    {
      "id": "K834",
      "number": 834,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.recycle",
      "stage": "negative",
      "title": "ASID nesil geri dönüşümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeniden kullanım hedefli TLBI ister.",
      "action": "os_address_spaces_recycle_negative testini oluştur: “Nesil taşması”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yeniden kullanım hedefli TLBI ister",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_recycle"
      },
      "dependencies": [
        "K833"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Az ASID ile çok süreç",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Eski TLB çevirisi yeni sürece sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_recycle_positive",
        "negativeName": "os_address_spaces_recycle_negative",
        "expectedMarker": "TURKOS/OS/K835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Nesil taşması karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k834"
    },
    {
      "id": "K835",
      "number": 835,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.recycle",
      "stage": "integration",
      "title": "ASID nesil geri dönüşümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeniden kullanım hedefli TLBI ister.",
      "action": "Tek ürün Image'ında “Eski TLB çevirisi yeni sürece sızmaz” kabulünü koştur. scripts/os-acceptance/address_spaces.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yeniden kullanım hedefli TLBI ister",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_recycle"
      },
      "dependencies": [
        "K834"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Az ASID ile çok süreç",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Eski TLB çevirisi yeni sürece sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_recycle_positive",
        "negativeName": "os_address_spaces_recycle_negative",
        "expectedMarker": "TURKOS/OS/K835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski TLB çevirisi yeni sürece sızmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k835"
    },
    {
      "id": "K836",
      "number": 836,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.kernel_map",
      "stage": "contract",
      "title": "Ortak kernel harita sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Ortak kernel alanı EL0 için kapalıdır.",
      "action": "“Ortak kernel harita sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ortak kernel alanı EL0 için kapalıdır. “İki süreç aynı kernel kökü” kabulü ile “MMIO user biti açık” reddini aynı sözleşmeye bağla.",
      "invariant": "Ortak kernel alanı EL0 için kapalıdır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_kernel_map"
      },
      "dependencies": [
        "K835"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki süreç aynı kernel kökü",
      "counterexample": "MMIO user biti açık",
      "guestAcceptance": "EL0 kernel adresinde fault olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_kernel_map_positive",
        "negativeName": "os_address_spaces_kernel_map_negative",
        "expectedMarker": "TURKOS/OS/K840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ortak kernel alanı EL0 için kapalıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“MMIO user biti açık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k836"
    },
    {
      "id": "K837",
      "number": 837,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.kernel_map",
      "stage": "implementation",
      "title": "Ortak kernel harita sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Ortak kernel alanı EL0 için kapalıdır.",
      "action": "kernel/src/runtime/address_spaces.rs hedefinde os_address_spaces_kernel_map yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/asid.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ortak kernel alanı EL0 için kapalıdır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_kernel_map"
      },
      "dependencies": [
        "K836"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki süreç aynı kernel kökü",
      "counterexample": "MMIO user biti açık",
      "guestAcceptance": "EL0 kernel adresinde fault olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_kernel_map_positive",
        "negativeName": "os_address_spaces_kernel_map_negative",
        "expectedMarker": "TURKOS/OS/K840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki süreç aynı kernel kökü ile MMIO user biti açık ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“MMIO user biti açık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k837"
    },
    {
      "id": "K838",
      "number": 838,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.kernel_map",
      "stage": "positive",
      "title": "Ortak kernel harita sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Ortak kernel alanı EL0 için kapalıdır.",
      "action": "os_address_spaces_kernel_map_positive testini oluştur: “İki süreç aynı kernel kökü”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ortak kernel alanı EL0 için kapalıdır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_kernel_map"
      },
      "dependencies": [
        "K837"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki süreç aynı kernel kökü",
      "counterexample": "MMIO user biti açık",
      "guestAcceptance": "EL0 kernel adresinde fault olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_kernel_map_positive",
        "negativeName": "os_address_spaces_kernel_map_negative",
        "expectedMarker": "TURKOS/OS/K840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki süreç aynı kernel kökü girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“MMIO user biti açık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k838"
    },
    {
      "id": "K839",
      "number": 839,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.kernel_map",
      "stage": "negative",
      "title": "Ortak kernel harita sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Ortak kernel alanı EL0 için kapalıdır.",
      "action": "os_address_spaces_kernel_map_negative testini oluştur: “MMIO user biti açık”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ortak kernel alanı EL0 için kapalıdır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_kernel_map"
      },
      "dependencies": [
        "K838"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki süreç aynı kernel kökü",
      "counterexample": "MMIO user biti açık",
      "guestAcceptance": "EL0 kernel adresinde fault olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_kernel_map_positive",
        "negativeName": "os_address_spaces_kernel_map_negative",
        "expectedMarker": "TURKOS/OS/K840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "MMIO user biti açık karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“MMIO user biti açık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k839"
    },
    {
      "id": "K840",
      "number": 840,
      "phase": 3,
      "module": "address_spaces",
      "feature": "address_spaces.kernel_map",
      "stage": "integration",
      "title": "Ortak kernel harita sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Ortak kernel alanı EL0 için kapalıdır.",
      "action": "Tek ürün Image'ında “EL0 kernel adresinde fault olur” kabulünü koştur. scripts/os-acceptance/address_spaces.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ortak kernel alanı EL0 için kapalıdır",
      "source": {
        "target": "kernel/src/runtime/address_spaces.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_address_spaces_kernel_map"
      },
      "dependencies": [
        "K839"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki süreç aynı kernel kökü",
      "counterexample": "MMIO user biti açık",
      "guestAcceptance": "EL0 kernel adresinde fault olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/address_spaces.rs",
        "harness": "scripts/os-acceptance/address_spaces.mjs",
        "positiveName": "os_address_spaces_kernel_map_positive",
        "negativeName": "os_address_spaces_kernel_map_negative",
        "expectedMarker": "TURKOS/OS/K840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EL0 kernel adresinde fault olur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“MMIO user biti açık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k840"
    },
    {
      "id": "K841",
      "number": 841,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.insert",
      "stage": "contract",
      "title": "Atomik çok sayfalı map · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aralığın tamamı kontrol edilmeden PTE yazılmaz.",
      "action": "“Atomik çok sayfalı map” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aralığın tamamı kontrol edilmeden PTE yazılmaz. “Üç ardışık sayfa” kabulü ile “Son sayfa mevcut map üstünde” reddini aynı sözleşmeye bağla.",
      "invariant": "Aralığın tamamı kontrol edilmeden PTE yazılmaz",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_insert"
      },
      "dependencies": [
        "K840"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç ardışık sayfa",
      "counterexample": "Son sayfa mevcut map üstünde",
      "guestAcceptance": "Çakışmada hiçbir prefix yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_insert_positive",
        "negativeName": "os_mapping_insert_negative",
        "expectedMarker": "TURKOS/OS/K845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aralığın tamamı kontrol edilmeden PTE yazılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Son sayfa mevcut map üstünde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k841"
    },
    {
      "id": "K842",
      "number": 842,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.insert",
      "stage": "implementation",
      "title": "Atomik çok sayfalı map · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aralığın tamamı kontrol edilmeden PTE yazılmaz.",
      "action": "kernel/src/runtime/mapping.rs hedefinde os_mapping_insert yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aralığın tamamı kontrol edilmeden PTE yazılmaz",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_insert"
      },
      "dependencies": [
        "K841"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç ardışık sayfa",
      "counterexample": "Son sayfa mevcut map üstünde",
      "guestAcceptance": "Çakışmada hiçbir prefix yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_insert_positive",
        "negativeName": "os_mapping_insert_negative",
        "expectedMarker": "TURKOS/OS/K845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç ardışık sayfa ile Son sayfa mevcut map üstünde ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Son sayfa mevcut map üstünde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k842"
    },
    {
      "id": "K843",
      "number": 843,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.insert",
      "stage": "positive",
      "title": "Atomik çok sayfalı map · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aralığın tamamı kontrol edilmeden PTE yazılmaz.",
      "action": "os_mapping_insert_positive testini oluştur: “Üç ardışık sayfa”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aralığın tamamı kontrol edilmeden PTE yazılmaz",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_insert"
      },
      "dependencies": [
        "K842"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç ardışık sayfa",
      "counterexample": "Son sayfa mevcut map üstünde",
      "guestAcceptance": "Çakışmada hiçbir prefix yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_insert_positive",
        "negativeName": "os_mapping_insert_negative",
        "expectedMarker": "TURKOS/OS/K845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç ardışık sayfa girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Son sayfa mevcut map üstünde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k843"
    },
    {
      "id": "K844",
      "number": 844,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.insert",
      "stage": "negative",
      "title": "Atomik çok sayfalı map · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aralığın tamamı kontrol edilmeden PTE yazılmaz.",
      "action": "os_mapping_insert_negative testini oluştur: “Son sayfa mevcut map üstünde”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aralığın tamamı kontrol edilmeden PTE yazılmaz",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_insert"
      },
      "dependencies": [
        "K843"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç ardışık sayfa",
      "counterexample": "Son sayfa mevcut map üstünde",
      "guestAcceptance": "Çakışmada hiçbir prefix yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_insert_positive",
        "negativeName": "os_mapping_insert_negative",
        "expectedMarker": "TURKOS/OS/K845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son sayfa mevcut map üstünde karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Son sayfa mevcut map üstünde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k844"
    },
    {
      "id": "K845",
      "number": 845,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.insert",
      "stage": "integration",
      "title": "Atomik çok sayfalı map · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Aralığın tamamı kontrol edilmeden PTE yazılmaz.",
      "action": "Tek ürün Image'ında “Çakışmada hiçbir prefix yayımlanmaz” kabulünü koştur. scripts/os-acceptance/mapping.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aralığın tamamı kontrol edilmeden PTE yazılmaz",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_insert"
      },
      "dependencies": [
        "K844"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Üç ardışık sayfa",
      "counterexample": "Son sayfa mevcut map üstünde",
      "guestAcceptance": "Çakışmada hiçbir prefix yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_insert_positive",
        "negativeName": "os_mapping_insert_negative",
        "expectedMarker": "TURKOS/OS/K845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çakışmada hiçbir prefix yayımlanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Son sayfa mevcut map üstünde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k845"
    },
    {
      "id": "K846",
      "number": 846,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.remove",
      "stage": "contract",
      "title": "Aralık unmap işlemi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yalnız sahibin sayfaları çözülür.",
      "action": "“Aralık unmap işlemi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yalnız sahibin sayfaları çözülür. “Bir aralığın orta sayfası” kabulü ile “Yabancı süreç unmap talebi” reddini aynı sözleşmeye bağla.",
      "invariant": "Yalnız sahibin sayfaları çözülür",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_remove"
      },
      "dependencies": [
        "K845"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Bir aralığın orta sayfası",
      "counterexample": "Yabancı süreç unmap talebi",
      "guestAcceptance": "Kalan iki sayfa erişilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_remove_positive",
        "negativeName": "os_mapping_remove_negative",
        "expectedMarker": "TURKOS/OS/K850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yalnız sahibin sayfaları çözülür kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı süreç unmap talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k846"
    },
    {
      "id": "K847",
      "number": 847,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.remove",
      "stage": "implementation",
      "title": "Aralık unmap işlemi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yalnız sahibin sayfaları çözülür.",
      "action": "kernel/src/runtime/mapping.rs hedefinde os_mapping_remove yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yalnız sahibin sayfaları çözülür",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_remove"
      },
      "dependencies": [
        "K846"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Bir aralığın orta sayfası",
      "counterexample": "Yabancı süreç unmap talebi",
      "guestAcceptance": "Kalan iki sayfa erişilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_remove_positive",
        "negativeName": "os_mapping_remove_negative",
        "expectedMarker": "TURKOS/OS/K850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir aralığın orta sayfası ile Yabancı süreç unmap talebi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı süreç unmap talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k847"
    },
    {
      "id": "K848",
      "number": 848,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.remove",
      "stage": "positive",
      "title": "Aralık unmap işlemi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yalnız sahibin sayfaları çözülür.",
      "action": "os_mapping_remove_positive testini oluştur: “Bir aralığın orta sayfası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yalnız sahibin sayfaları çözülür",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_remove"
      },
      "dependencies": [
        "K847"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Bir aralığın orta sayfası",
      "counterexample": "Yabancı süreç unmap talebi",
      "guestAcceptance": "Kalan iki sayfa erişilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_remove_positive",
        "negativeName": "os_mapping_remove_negative",
        "expectedMarker": "TURKOS/OS/K850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir aralığın orta sayfası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı süreç unmap talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k848"
    },
    {
      "id": "K849",
      "number": 849,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.remove",
      "stage": "negative",
      "title": "Aralık unmap işlemi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yalnız sahibin sayfaları çözülür.",
      "action": "os_mapping_remove_negative testini oluştur: “Yabancı süreç unmap talebi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yalnız sahibin sayfaları çözülür",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_remove"
      },
      "dependencies": [
        "K848"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Bir aralığın orta sayfası",
      "counterexample": "Yabancı süreç unmap talebi",
      "guestAcceptance": "Kalan iki sayfa erişilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_remove_positive",
        "negativeName": "os_mapping_remove_negative",
        "expectedMarker": "TURKOS/OS/K850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı süreç unmap talebi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı süreç unmap talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k849"
    },
    {
      "id": "K850",
      "number": 850,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.remove",
      "stage": "integration",
      "title": "Aralık unmap işlemi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yalnız sahibin sayfaları çözülür.",
      "action": "Tek ürün Image'ında “Kalan iki sayfa erişilir” kabulünü koştur. scripts/os-acceptance/mapping.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yalnız sahibin sayfaları çözülür",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_remove"
      },
      "dependencies": [
        "K849"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Bir aralığın orta sayfası",
      "counterexample": "Yabancı süreç unmap talebi",
      "guestAcceptance": "Kalan iki sayfa erişilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_remove_positive",
        "negativeName": "os_mapping_remove_negative",
        "expectedMarker": "TURKOS/OS/K850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kalan iki sayfa erişilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı süreç unmap talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k850"
    },
    {
      "id": "K851",
      "number": 851,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.protect",
      "stage": "contract",
      "title": "mprotect benzeri izin dönüşümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeni izin W xor X kuralını korur.",
      "action": "“mprotect benzeri izin dönüşümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yeni izin W xor X kuralını korur. “RW sayfa önce RO sonra RX” kabulü ile “W ve X birlikte istenir” reddini aynı sözleşmeye bağla.",
      "invariant": "Yeni izin W xor X kuralını korur",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_protect"
      },
      "dependencies": [
        "K850"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "RW sayfa önce RO sonra RX",
      "counterexample": "W ve X birlikte istenir",
      "guestAcceptance": "Eski izin TLB içinde kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_protect_positive",
        "negativeName": "os_mapping_protect_negative",
        "expectedMarker": "TURKOS/OS/K855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yeni izin W xor X kuralını korur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“W ve X birlikte istenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k851"
    },
    {
      "id": "K852",
      "number": 852,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.protect",
      "stage": "implementation",
      "title": "mprotect benzeri izin dönüşümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeni izin W xor X kuralını korur.",
      "action": "kernel/src/runtime/mapping.rs hedefinde os_mapping_protect yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yeni izin W xor X kuralını korur",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_protect"
      },
      "dependencies": [
        "K851"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "RW sayfa önce RO sonra RX",
      "counterexample": "W ve X birlikte istenir",
      "guestAcceptance": "Eski izin TLB içinde kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_protect_positive",
        "negativeName": "os_mapping_protect_negative",
        "expectedMarker": "TURKOS/OS/K855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. RW sayfa önce RO sonra RX ile W ve X birlikte istenir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“W ve X birlikte istenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k852"
    },
    {
      "id": "K853",
      "number": 853,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.protect",
      "stage": "positive",
      "title": "mprotect benzeri izin dönüşümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeni izin W xor X kuralını korur.",
      "action": "os_mapping_protect_positive testini oluştur: “RW sayfa önce RO sonra RX”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yeni izin W xor X kuralını korur",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_protect"
      },
      "dependencies": [
        "K852"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "RW sayfa önce RO sonra RX",
      "counterexample": "W ve X birlikte istenir",
      "guestAcceptance": "Eski izin TLB içinde kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_protect_positive",
        "negativeName": "os_mapping_protect_negative",
        "expectedMarker": "TURKOS/OS/K855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; RW sayfa önce RO sonra RX girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“W ve X birlikte istenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k853"
    },
    {
      "id": "K854",
      "number": 854,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.protect",
      "stage": "negative",
      "title": "mprotect benzeri izin dönüşümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeni izin W xor X kuralını korur.",
      "action": "os_mapping_protect_negative testini oluştur: “W ve X birlikte istenir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yeni izin W xor X kuralını korur",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_protect"
      },
      "dependencies": [
        "K853"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "RW sayfa önce RO sonra RX",
      "counterexample": "W ve X birlikte istenir",
      "guestAcceptance": "Eski izin TLB içinde kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_protect_positive",
        "negativeName": "os_mapping_protect_negative",
        "expectedMarker": "TURKOS/OS/K855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "W ve X birlikte istenir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“W ve X birlikte istenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k854"
    },
    {
      "id": "K855",
      "number": 855,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.protect",
      "stage": "integration",
      "title": "mprotect benzeri izin dönüşümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yeni izin W xor X kuralını korur.",
      "action": "Tek ürün Image'ında “Eski izin TLB içinde kalmaz” kabulünü koştur. scripts/os-acceptance/mapping.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yeni izin W xor X kuralını korur",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_protect"
      },
      "dependencies": [
        "K854"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "RW sayfa önce RO sonra RX",
      "counterexample": "W ve X birlikte istenir",
      "guestAcceptance": "Eski izin TLB içinde kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_protect_positive",
        "negativeName": "os_mapping_protect_negative",
        "expectedMarker": "TURKOS/OS/K855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski izin TLB içinde kalmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“W ve X birlikte istenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k855"
    },
    {
      "id": "K856",
      "number": 856,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.guard",
      "stage": "contract",
      "title": "Adres boşlukları ve guard · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Guard sayfası backing edinmez.",
      "action": "“Adres boşlukları ve guard” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Guard sayfası backing edinmez. “Yığın altında bir boş sayfa” kabulü ile “Guard yanlışlıkla zero page olur” reddini aynı sözleşmeye bağla.",
      "invariant": "Guard sayfası backing edinmez",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_guard"
      },
      "dependencies": [
        "K855"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Yığın altında bir boş sayfa",
      "counterexample": "Guard yanlışlıkla zero page olur",
      "guestAcceptance": "Yığın taşması yalnız süreci keser",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_guard_positive",
        "negativeName": "os_mapping_guard_negative",
        "expectedMarker": "TURKOS/OS/K860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Guard sayfası backing edinmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Guard yanlışlıkla zero page olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k856"
    },
    {
      "id": "K857",
      "number": 857,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.guard",
      "stage": "implementation",
      "title": "Adres boşlukları ve guard · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Guard sayfası backing edinmez.",
      "action": "kernel/src/runtime/mapping.rs hedefinde os_mapping_guard yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Guard sayfası backing edinmez",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_guard"
      },
      "dependencies": [
        "K856"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Yığın altında bir boş sayfa",
      "counterexample": "Guard yanlışlıkla zero page olur",
      "guestAcceptance": "Yığın taşması yalnız süreci keser",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_guard_positive",
        "negativeName": "os_mapping_guard_negative",
        "expectedMarker": "TURKOS/OS/K860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yığın altında bir boş sayfa ile Guard yanlışlıkla zero page olur ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Guard yanlışlıkla zero page olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k857"
    },
    {
      "id": "K858",
      "number": 858,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.guard",
      "stage": "positive",
      "title": "Adres boşlukları ve guard · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Guard sayfası backing edinmez.",
      "action": "os_mapping_guard_positive testini oluştur: “Yığın altında bir boş sayfa”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Guard sayfası backing edinmez",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_guard"
      },
      "dependencies": [
        "K857"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Yığın altında bir boş sayfa",
      "counterexample": "Guard yanlışlıkla zero page olur",
      "guestAcceptance": "Yığın taşması yalnız süreci keser",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_guard_positive",
        "negativeName": "os_mapping_guard_negative",
        "expectedMarker": "TURKOS/OS/K860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yığın altında bir boş sayfa girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Guard yanlışlıkla zero page olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k858"
    },
    {
      "id": "K859",
      "number": 859,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.guard",
      "stage": "negative",
      "title": "Adres boşlukları ve guard · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Guard sayfası backing edinmez.",
      "action": "os_mapping_guard_negative testini oluştur: “Guard yanlışlıkla zero page olur”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Guard sayfası backing edinmez",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_guard"
      },
      "dependencies": [
        "K858"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Yığın altında bir boş sayfa",
      "counterexample": "Guard yanlışlıkla zero page olur",
      "guestAcceptance": "Yığın taşması yalnız süreci keser",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_guard_positive",
        "negativeName": "os_mapping_guard_negative",
        "expectedMarker": "TURKOS/OS/K860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Guard yanlışlıkla zero page olur karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Guard yanlışlıkla zero page olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k859"
    },
    {
      "id": "K860",
      "number": 860,
      "phase": 3,
      "module": "mapping",
      "feature": "mapping.guard",
      "stage": "integration",
      "title": "Adres boşlukları ve guard · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Guard sayfası backing edinmez.",
      "action": "Tek ürün Image'ında “Yığın taşması yalnız süreci keser” kabulünü koştur. scripts/os-acceptance/mapping.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Guard sayfası backing edinmez",
      "source": {
        "target": "kernel/src/runtime/mapping.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_mapping_guard"
      },
      "dependencies": [
        "K859"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Yığın altında bir boş sayfa",
      "counterexample": "Guard yanlışlıkla zero page olur",
      "guestAcceptance": "Yığın taşması yalnız süreci keser",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mapping.rs",
        "harness": "scripts/os-acceptance/mapping.mjs",
        "positiveName": "os_mapping_guard_positive",
        "negativeName": "os_mapping_guard_negative",
        "expectedMarker": "TURKOS/OS/K860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yığın taşması yalnız süreci keser; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Guard yanlışlıkla zero page olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k860"
    },
    {
      "id": "K861",
      "number": 861,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.read",
      "stage": "contract",
      "title": "Çok sayfalı copy_from_user · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Tam aralık önce okunabilir doğrulanır.",
      "action": "“Çok sayfalı copy_from_user” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Tam aralık önce okunabilir doğrulanır. “4095 ofsette 8193 bayt” kabulü ile “Son sayfa unmapped” reddini aynı sözleşmeye bağla.",
      "invariant": "Tam aralık önce okunabilir doğrulanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_read"
      },
      "dependencies": [
        "K860"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "4095 ofsette 8193 bayt",
      "counterexample": "Son sayfa unmapped",
      "guestAcceptance": "Kernel hedefinde kısmi değişiklik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_read_positive",
        "negativeName": "os_user_copy_read_negative",
        "expectedMarker": "TURKOS/OS/K865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Tam aralık önce okunabilir doğrulanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Son sayfa unmapped” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k861"
    },
    {
      "id": "K862",
      "number": 862,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.read",
      "stage": "implementation",
      "title": "Çok sayfalı copy_from_user · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Tam aralık önce okunabilir doğrulanır.",
      "action": "kernel/src/runtime/user_copy.rs hedefinde os_user_copy_read yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_copy.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Tam aralık önce okunabilir doğrulanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_read"
      },
      "dependencies": [
        "K861"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "4095 ofsette 8193 bayt",
      "counterexample": "Son sayfa unmapped",
      "guestAcceptance": "Kernel hedefinde kısmi değişiklik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_read_positive",
        "negativeName": "os_user_copy_read_negative",
        "expectedMarker": "TURKOS/OS/K865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 4095 ofsette 8193 bayt ile Son sayfa unmapped ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Son sayfa unmapped” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k862"
    },
    {
      "id": "K863",
      "number": 863,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.read",
      "stage": "positive",
      "title": "Çok sayfalı copy_from_user · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Tam aralık önce okunabilir doğrulanır.",
      "action": "os_user_copy_read_positive testini oluştur: “4095 ofsette 8193 bayt”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Tam aralık önce okunabilir doğrulanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_read"
      },
      "dependencies": [
        "K862"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "4095 ofsette 8193 bayt",
      "counterexample": "Son sayfa unmapped",
      "guestAcceptance": "Kernel hedefinde kısmi değişiklik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_read_positive",
        "negativeName": "os_user_copy_read_negative",
        "expectedMarker": "TURKOS/OS/K865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 4095 ofsette 8193 bayt girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Son sayfa unmapped” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k863"
    },
    {
      "id": "K864",
      "number": 864,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.read",
      "stage": "negative",
      "title": "Çok sayfalı copy_from_user · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Tam aralık önce okunabilir doğrulanır.",
      "action": "os_user_copy_read_negative testini oluştur: “Son sayfa unmapped”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Tam aralık önce okunabilir doğrulanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_read"
      },
      "dependencies": [
        "K863"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "4095 ofsette 8193 bayt",
      "counterexample": "Son sayfa unmapped",
      "guestAcceptance": "Kernel hedefinde kısmi değişiklik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_read_positive",
        "negativeName": "os_user_copy_read_negative",
        "expectedMarker": "TURKOS/OS/K865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son sayfa unmapped karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Son sayfa unmapped” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k864"
    },
    {
      "id": "K865",
      "number": 865,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.read",
      "stage": "integration",
      "title": "Çok sayfalı copy_from_user · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Tam aralık önce okunabilir doğrulanır.",
      "action": "Tek ürün Image'ında “Kernel hedefinde kısmi değişiklik yok” kabulünü koştur. scripts/os-acceptance/user_copy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Tam aralık önce okunabilir doğrulanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_read"
      },
      "dependencies": [
        "K864"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "4095 ofsette 8193 bayt",
      "counterexample": "Son sayfa unmapped",
      "guestAcceptance": "Kernel hedefinde kısmi değişiklik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_read_positive",
        "negativeName": "os_user_copy_read_negative",
        "expectedMarker": "TURKOS/OS/K865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel hedefinde kısmi değişiklik yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Son sayfa unmapped” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k865"
    },
    {
      "id": "K866",
      "number": 866,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.write",
      "stage": "contract",
      "title": "Çok sayfalı copy_to_user · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: RO RX veya yabancı sayfaya yazı yok.",
      "action": "“Çok sayfalı copy_to_user” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: RO RX veya yabancı sayfaya yazı yok. “İki RW sayfaya sonuç” kabulü ile “RX son sayfa” reddini aynı sözleşmeye bağla.",
      "invariant": "RO RX veya yabancı sayfaya yazı yok",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_write"
      },
      "dependencies": [
        "K865"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki RW sayfaya sonuç",
      "counterexample": "RX son sayfa",
      "guestAcceptance": "Kullanıcı prefixi hata öncesi aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_write_positive",
        "negativeName": "os_user_copy_write_negative",
        "expectedMarker": "TURKOS/OS/K870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu RO RX veya yabancı sayfaya yazı yok kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“RX son sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k866"
    },
    {
      "id": "K867",
      "number": 867,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.write",
      "stage": "implementation",
      "title": "Çok sayfalı copy_to_user · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: RO RX veya yabancı sayfaya yazı yok.",
      "action": "kernel/src/runtime/user_copy.rs hedefinde os_user_copy_write yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_copy.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "RO RX veya yabancı sayfaya yazı yok",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_write"
      },
      "dependencies": [
        "K866"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki RW sayfaya sonuç",
      "counterexample": "RX son sayfa",
      "guestAcceptance": "Kullanıcı prefixi hata öncesi aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_write_positive",
        "negativeName": "os_user_copy_write_negative",
        "expectedMarker": "TURKOS/OS/K870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki RW sayfaya sonuç ile RX son sayfa ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“RX son sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k867"
    },
    {
      "id": "K868",
      "number": 868,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.write",
      "stage": "positive",
      "title": "Çok sayfalı copy_to_user · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: RO RX veya yabancı sayfaya yazı yok.",
      "action": "os_user_copy_write_positive testini oluştur: “İki RW sayfaya sonuç”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "RO RX veya yabancı sayfaya yazı yok",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_write"
      },
      "dependencies": [
        "K867"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki RW sayfaya sonuç",
      "counterexample": "RX son sayfa",
      "guestAcceptance": "Kullanıcı prefixi hata öncesi aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_write_positive",
        "negativeName": "os_user_copy_write_negative",
        "expectedMarker": "TURKOS/OS/K870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki RW sayfaya sonuç girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“RX son sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k868"
    },
    {
      "id": "K869",
      "number": 869,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.write",
      "stage": "negative",
      "title": "Çok sayfalı copy_to_user · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: RO RX veya yabancı sayfaya yazı yok.",
      "action": "os_user_copy_write_negative testini oluştur: “RX son sayfa”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "RO RX veya yabancı sayfaya yazı yok",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_write"
      },
      "dependencies": [
        "K868"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki RW sayfaya sonuç",
      "counterexample": "RX son sayfa",
      "guestAcceptance": "Kullanıcı prefixi hata öncesi aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_write_positive",
        "negativeName": "os_user_copy_write_negative",
        "expectedMarker": "TURKOS/OS/K870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "RX son sayfa karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“RX son sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k869"
    },
    {
      "id": "K870",
      "number": 870,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.write",
      "stage": "integration",
      "title": "Çok sayfalı copy_to_user · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: RO RX veya yabancı sayfaya yazı yok.",
      "action": "Tek ürün Image'ında “Kullanıcı prefixi hata öncesi aynı” kabulünü koştur. scripts/os-acceptance/user_copy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "RO RX veya yabancı sayfaya yazı yok",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_write"
      },
      "dependencies": [
        "K869"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki RW sayfaya sonuç",
      "counterexample": "RX son sayfa",
      "guestAcceptance": "Kullanıcı prefixi hata öncesi aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_write_positive",
        "negativeName": "os_user_copy_write_negative",
        "expectedMarker": "TURKOS/OS/K870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kullanıcı prefixi hata öncesi aynı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“RX son sayfa” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k870"
    },
    {
      "id": "K871",
      "number": 871,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.strings",
      "stage": "contract",
      "title": "Sınırlı kullanıcı metni · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: NUL araması azami uzunlukla durur.",
      "action": "“Sınırlı kullanıcı metni” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: NUL araması azami uzunlukla durur. “İki sayfayı geçen kısa ad” kabulü ile “NUL olmayan 64 KiB” reddini aynı sözleşmeye bağla.",
      "invariant": "NUL araması azami uzunlukla durur",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_strings"
      },
      "dependencies": [
        "K870"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki sayfayı geçen kısa ad",
      "counterexample": "NUL olmayan 64 KiB",
      "guestAcceptance": "ENAMETOOLONG kernel sırlarını okumaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_strings_positive",
        "negativeName": "os_user_copy_strings_negative",
        "expectedMarker": "TURKOS/OS/K875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu NUL araması azami uzunlukla durur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“NUL olmayan 64 KiB” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k871"
    },
    {
      "id": "K872",
      "number": 872,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.strings",
      "stage": "implementation",
      "title": "Sınırlı kullanıcı metni · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: NUL araması azami uzunlukla durur.",
      "action": "kernel/src/runtime/user_copy.rs hedefinde os_user_copy_strings yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_copy.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "NUL araması azami uzunlukla durur",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_strings"
      },
      "dependencies": [
        "K871"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki sayfayı geçen kısa ad",
      "counterexample": "NUL olmayan 64 KiB",
      "guestAcceptance": "ENAMETOOLONG kernel sırlarını okumaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_strings_positive",
        "negativeName": "os_user_copy_strings_negative",
        "expectedMarker": "TURKOS/OS/K875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki sayfayı geçen kısa ad ile NUL olmayan 64 KiB ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“NUL olmayan 64 KiB” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k872"
    },
    {
      "id": "K873",
      "number": 873,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.strings",
      "stage": "positive",
      "title": "Sınırlı kullanıcı metni · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: NUL araması azami uzunlukla durur.",
      "action": "os_user_copy_strings_positive testini oluştur: “İki sayfayı geçen kısa ad”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "NUL araması azami uzunlukla durur",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_strings"
      },
      "dependencies": [
        "K872"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki sayfayı geçen kısa ad",
      "counterexample": "NUL olmayan 64 KiB",
      "guestAcceptance": "ENAMETOOLONG kernel sırlarını okumaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_strings_positive",
        "negativeName": "os_user_copy_strings_negative",
        "expectedMarker": "TURKOS/OS/K875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki sayfayı geçen kısa ad girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“NUL olmayan 64 KiB” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k873"
    },
    {
      "id": "K874",
      "number": 874,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.strings",
      "stage": "negative",
      "title": "Sınırlı kullanıcı metni · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: NUL araması azami uzunlukla durur.",
      "action": "os_user_copy_strings_negative testini oluştur: “NUL olmayan 64 KiB”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "NUL araması azami uzunlukla durur",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_strings"
      },
      "dependencies": [
        "K873"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki sayfayı geçen kısa ad",
      "counterexample": "NUL olmayan 64 KiB",
      "guestAcceptance": "ENAMETOOLONG kernel sırlarını okumaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_strings_positive",
        "negativeName": "os_user_copy_strings_negative",
        "expectedMarker": "TURKOS/OS/K875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "NUL olmayan 64 KiB karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“NUL olmayan 64 KiB” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k874"
    },
    {
      "id": "K875",
      "number": 875,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.strings",
      "stage": "integration",
      "title": "Sınırlı kullanıcı metni · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: NUL araması azami uzunlukla durur.",
      "action": "Tek ürün Image'ında “ENAMETOOLONG kernel sırlarını okumaz” kabulünü koştur. scripts/os-acceptance/user_copy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "NUL araması azami uzunlukla durur",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_strings"
      },
      "dependencies": [
        "K874"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "İki sayfayı geçen kısa ad",
      "counterexample": "NUL olmayan 64 KiB",
      "guestAcceptance": "ENAMETOOLONG kernel sırlarını okumaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_strings_positive",
        "negativeName": "os_user_copy_strings_negative",
        "expectedMarker": "TURKOS/OS/K875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ENAMETOOLONG kernel sırlarını okumaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“NUL olmayan 64 KiB” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k875"
    },
    {
      "id": "K876",
      "number": 876,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.race",
      "stage": "contract",
      "title": "Kopya sırasında mapping ömrü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kopya pinlenmiş haritayı kullanır.",
      "action": "“Kopya sırasında mapping ömrü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kopya pinlenmiş haritayı kullanır. “Diğer thread unmap dener” kabulü ile “Pin kalkmadan backing free” reddini aynı sözleşmeye bağla.",
      "invariant": "Kopya pinlenmiş haritayı kullanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_race"
      },
      "dependencies": [
        "K875"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Diğer thread unmap dener",
      "counterexample": "Pin kalkmadan backing free",
      "guestAcceptance": "Kopya tamamlanır veya tanımlı EFAULT",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_race_positive",
        "negativeName": "os_user_copy_race_negative",
        "expectedMarker": "TURKOS/OS/K880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kopya pinlenmiş haritayı kullanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Pin kalkmadan backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k876"
    },
    {
      "id": "K877",
      "number": 877,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.race",
      "stage": "implementation",
      "title": "Kopya sırasında mapping ömrü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kopya pinlenmiş haritayı kullanır.",
      "action": "kernel/src/runtime/user_copy.rs hedefinde os_user_copy_race yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_copy.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kopya pinlenmiş haritayı kullanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_race"
      },
      "dependencies": [
        "K876"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Diğer thread unmap dener",
      "counterexample": "Pin kalkmadan backing free",
      "guestAcceptance": "Kopya tamamlanır veya tanımlı EFAULT",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_race_positive",
        "negativeName": "os_user_copy_race_negative",
        "expectedMarker": "TURKOS/OS/K880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Diğer thread unmap dener ile Pin kalkmadan backing free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Pin kalkmadan backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k877"
    },
    {
      "id": "K878",
      "number": 878,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.race",
      "stage": "positive",
      "title": "Kopya sırasında mapping ömrü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kopya pinlenmiş haritayı kullanır.",
      "action": "os_user_copy_race_positive testini oluştur: “Diğer thread unmap dener”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kopya pinlenmiş haritayı kullanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_race"
      },
      "dependencies": [
        "K877"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Diğer thread unmap dener",
      "counterexample": "Pin kalkmadan backing free",
      "guestAcceptance": "Kopya tamamlanır veya tanımlı EFAULT",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_race_positive",
        "negativeName": "os_user_copy_race_negative",
        "expectedMarker": "TURKOS/OS/K880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Diğer thread unmap dener girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Pin kalkmadan backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k878"
    },
    {
      "id": "K879",
      "number": 879,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.race",
      "stage": "negative",
      "title": "Kopya sırasında mapping ömrü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kopya pinlenmiş haritayı kullanır.",
      "action": "os_user_copy_race_negative testini oluştur: “Pin kalkmadan backing free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kopya pinlenmiş haritayı kullanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_race"
      },
      "dependencies": [
        "K878"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Diğer thread unmap dener",
      "counterexample": "Pin kalkmadan backing free",
      "guestAcceptance": "Kopya tamamlanır veya tanımlı EFAULT",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_race_positive",
        "negativeName": "os_user_copy_race_negative",
        "expectedMarker": "TURKOS/OS/K880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Pin kalkmadan backing free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Pin kalkmadan backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k879"
    },
    {
      "id": "K880",
      "number": 880,
      "phase": 3,
      "module": "user_copy",
      "feature": "user_copy.race",
      "stage": "integration",
      "title": "Kopya sırasında mapping ömrü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Kopya pinlenmiş haritayı kullanır.",
      "action": "Tek ürün Image'ında “Kopya tamamlanır veya tanımlı EFAULT” kabulünü koştur. scripts/os-acceptance/user_copy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kopya pinlenmiş haritayı kullanır",
      "source": {
        "target": "kernel/src/runtime/user_copy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_user_copy_race"
      },
      "dependencies": [
        "K879"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Diğer thread unmap dener",
      "counterexample": "Pin kalkmadan backing free",
      "guestAcceptance": "Kopya tamamlanır veya tanımlı EFAULT",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_copy.rs",
        "harness": "scripts/os-acceptance/user_copy.mjs",
        "positiveName": "os_user_copy_race_positive",
        "negativeName": "os_user_copy_race_negative",
        "expectedMarker": "TURKOS/OS/K880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kopya tamamlanır veya tanımlı EFAULT; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Pin kalkmadan backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k880"
    },
    {
      "id": "K881",
      "number": 881,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.classify",
      "stage": "contract",
      "title": "Kullanıcı fault sınıfları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Translation permission ve kernel fault ayrılır.",
      "action": "“Kullanıcı fault sınıfları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Translation permission ve kernel fault ayrılır. “Eksik kullanıcı veri sayfası” kabulü ile “Kernel fault kullanıcı hatası sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Translation permission ve kernel fault ayrılır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_classify"
      },
      "dependencies": [
        "K880"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Eksik kullanıcı veri sayfası",
      "counterexample": "Kernel fault kullanıcı hatası sayılır",
      "guestAcceptance": "Tanı doğru hata alanını gösterir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_classify_positive",
        "negativeName": "os_page_faults_classify_negative",
        "expectedMarker": "TURKOS/OS/K885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Translation permission ve kernel fault ayrılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kernel fault kullanıcı hatası sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k881"
    },
    {
      "id": "K882",
      "number": 882,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.classify",
      "stage": "implementation",
      "title": "Kullanıcı fault sınıfları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Translation permission ve kernel fault ayrılır.",
      "action": "kernel/src/runtime/page_faults.rs hedefinde os_page_faults_classify yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Translation permission ve kernel fault ayrılır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_classify"
      },
      "dependencies": [
        "K881"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Eksik kullanıcı veri sayfası",
      "counterexample": "Kernel fault kullanıcı hatası sayılır",
      "guestAcceptance": "Tanı doğru hata alanını gösterir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_classify_positive",
        "negativeName": "os_page_faults_classify_negative",
        "expectedMarker": "TURKOS/OS/K885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Eksik kullanıcı veri sayfası ile Kernel fault kullanıcı hatası sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kernel fault kullanıcı hatası sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k882"
    },
    {
      "id": "K883",
      "number": 883,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.classify",
      "stage": "positive",
      "title": "Kullanıcı fault sınıfları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Translation permission ve kernel fault ayrılır.",
      "action": "os_page_faults_classify_positive testini oluştur: “Eksik kullanıcı veri sayfası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Translation permission ve kernel fault ayrılır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_classify"
      },
      "dependencies": [
        "K882"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Eksik kullanıcı veri sayfası",
      "counterexample": "Kernel fault kullanıcı hatası sayılır",
      "guestAcceptance": "Tanı doğru hata alanını gösterir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_classify_positive",
        "negativeName": "os_page_faults_classify_negative",
        "expectedMarker": "TURKOS/OS/K885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Eksik kullanıcı veri sayfası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kernel fault kullanıcı hatası sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k883"
    },
    {
      "id": "K884",
      "number": 884,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.classify",
      "stage": "negative",
      "title": "Kullanıcı fault sınıfları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Translation permission ve kernel fault ayrılır.",
      "action": "os_page_faults_classify_negative testini oluştur: “Kernel fault kullanıcı hatası sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Translation permission ve kernel fault ayrılır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_classify"
      },
      "dependencies": [
        "K883"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Eksik kullanıcı veri sayfası",
      "counterexample": "Kernel fault kullanıcı hatası sayılır",
      "guestAcceptance": "Tanı doğru hata alanını gösterir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_classify_positive",
        "negativeName": "os_page_faults_classify_negative",
        "expectedMarker": "TURKOS/OS/K885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel fault kullanıcı hatası sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kernel fault kullanıcı hatası sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k884"
    },
    {
      "id": "K885",
      "number": 885,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.classify",
      "stage": "integration",
      "title": "Kullanıcı fault sınıfları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Translation permission ve kernel fault ayrılır.",
      "action": "Tek ürün Image'ında “Tanı doğru hata alanını gösterir” kabulünü koştur. scripts/os-acceptance/page_faults.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Translation permission ve kernel fault ayrılır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_classify"
      },
      "dependencies": [
        "K884"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Eksik kullanıcı veri sayfası",
      "counterexample": "Kernel fault kullanıcı hatası sayılır",
      "guestAcceptance": "Tanı doğru hata alanını gösterir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_classify_positive",
        "negativeName": "os_page_faults_classify_negative",
        "expectedMarker": "TURKOS/OS/K885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tanı doğru hata alanını gösterir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kernel fault kullanıcı hatası sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k885"
    },
    {
      "id": "K886",
      "number": 886,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.anonymous",
      "stage": "contract",
      "title": "Anonim sıfır sayfa · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İlk erişim tek zero backing edinir.",
      "action": "“Anonim sıfır sayfa” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İlk erişim tek zero backing edinir. “Aynı sayfaya iki erişim” kabulü ile “Quota doluyken ilk fault” reddini aynı sözleşmeye bağla.",
      "invariant": "İlk erişim tek zero backing edinir",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_anonymous"
      },
      "dependencies": [
        "K885"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Aynı sayfaya iki erişim",
      "counterexample": "Quota doluyken ilk fault",
      "guestAcceptance": "Tek tahsis veya temiz ENOMEM",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_anonymous_positive",
        "negativeName": "os_page_faults_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İlk erişim tek zero backing edinir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Quota doluyken ilk fault” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k886"
    },
    {
      "id": "K887",
      "number": 887,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.anonymous",
      "stage": "implementation",
      "title": "Anonim sıfır sayfa · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İlk erişim tek zero backing edinir.",
      "action": "kernel/src/runtime/page_faults.rs hedefinde os_page_faults_anonymous yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İlk erişim tek zero backing edinir",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_anonymous"
      },
      "dependencies": [
        "K886"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Aynı sayfaya iki erişim",
      "counterexample": "Quota doluyken ilk fault",
      "guestAcceptance": "Tek tahsis veya temiz ENOMEM",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_anonymous_positive",
        "negativeName": "os_page_faults_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı sayfaya iki erişim ile Quota doluyken ilk fault ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Quota doluyken ilk fault” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k887"
    },
    {
      "id": "K888",
      "number": 888,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.anonymous",
      "stage": "positive",
      "title": "Anonim sıfır sayfa · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İlk erişim tek zero backing edinir.",
      "action": "os_page_faults_anonymous_positive testini oluştur: “Aynı sayfaya iki erişim”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İlk erişim tek zero backing edinir",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_anonymous"
      },
      "dependencies": [
        "K887"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Aynı sayfaya iki erişim",
      "counterexample": "Quota doluyken ilk fault",
      "guestAcceptance": "Tek tahsis veya temiz ENOMEM",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_anonymous_positive",
        "negativeName": "os_page_faults_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı sayfaya iki erişim girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Quota doluyken ilk fault” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k888"
    },
    {
      "id": "K889",
      "number": 889,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.anonymous",
      "stage": "negative",
      "title": "Anonim sıfır sayfa · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İlk erişim tek zero backing edinir.",
      "action": "os_page_faults_anonymous_negative testini oluştur: “Quota doluyken ilk fault”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İlk erişim tek zero backing edinir",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_anonymous"
      },
      "dependencies": [
        "K888"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Aynı sayfaya iki erişim",
      "counterexample": "Quota doluyken ilk fault",
      "guestAcceptance": "Tek tahsis veya temiz ENOMEM",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_anonymous_positive",
        "negativeName": "os_page_faults_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Quota doluyken ilk fault karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Quota doluyken ilk fault” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k889"
    },
    {
      "id": "K890",
      "number": 890,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.anonymous",
      "stage": "integration",
      "title": "Anonim sıfır sayfa · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: İlk erişim tek zero backing edinir.",
      "action": "Tek ürün Image'ında “Tek tahsis veya temiz ENOMEM” kabulünü koştur. scripts/os-acceptance/page_faults.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İlk erişim tek zero backing edinir",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_anonymous"
      },
      "dependencies": [
        "K889"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Aynı sayfaya iki erişim",
      "counterexample": "Quota doluyken ilk fault",
      "guestAcceptance": "Tek tahsis veya temiz ENOMEM",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_anonymous_positive",
        "negativeName": "os_page_faults_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek tahsis veya temiz ENOMEM; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Quota doluyken ilk fault” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k890"
    },
    {
      "id": "K891",
      "number": 891,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.stack_grow",
      "stage": "contract",
      "title": "Sınırlı yığın büyümesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Büyüme ayrılmış pencereyi geçmez.",
      "action": "“Sınırlı yığın büyümesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Büyüme ayrılmış pencereyi geçmez. “Guard üstü komşu erişim” kabulü ile “Heap içine atlayan SP” reddini aynı sözleşmeye bağla.",
      "invariant": "Büyüme ayrılmış pencereyi geçmez",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_stack_grow"
      },
      "dependencies": [
        "K890"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Guard üstü komşu erişim",
      "counterexample": "Heap içine atlayan SP",
      "guestAcceptance": "Sınır dışı task sonlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_stack_grow_positive",
        "negativeName": "os_page_faults_stack_grow_negative",
        "expectedMarker": "TURKOS/OS/K895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Büyüme ayrılmış pencereyi geçmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Heap içine atlayan SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k891"
    },
    {
      "id": "K892",
      "number": 892,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.stack_grow",
      "stage": "implementation",
      "title": "Sınırlı yığın büyümesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Büyüme ayrılmış pencereyi geçmez.",
      "action": "kernel/src/runtime/page_faults.rs hedefinde os_page_faults_stack_grow yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Büyüme ayrılmış pencereyi geçmez",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_stack_grow"
      },
      "dependencies": [
        "K891"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Guard üstü komşu erişim",
      "counterexample": "Heap içine atlayan SP",
      "guestAcceptance": "Sınır dışı task sonlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_stack_grow_positive",
        "negativeName": "os_page_faults_stack_grow_negative",
        "expectedMarker": "TURKOS/OS/K895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Guard üstü komşu erişim ile Heap içine atlayan SP ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Heap içine atlayan SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k892"
    },
    {
      "id": "K893",
      "number": 893,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.stack_grow",
      "stage": "positive",
      "title": "Sınırlı yığın büyümesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Büyüme ayrılmış pencereyi geçmez.",
      "action": "os_page_faults_stack_grow_positive testini oluştur: “Guard üstü komşu erişim”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Büyüme ayrılmış pencereyi geçmez",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_stack_grow"
      },
      "dependencies": [
        "K892"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Guard üstü komşu erişim",
      "counterexample": "Heap içine atlayan SP",
      "guestAcceptance": "Sınır dışı task sonlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_stack_grow_positive",
        "negativeName": "os_page_faults_stack_grow_negative",
        "expectedMarker": "TURKOS/OS/K895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Guard üstü komşu erişim girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Heap içine atlayan SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k893"
    },
    {
      "id": "K894",
      "number": 894,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.stack_grow",
      "stage": "negative",
      "title": "Sınırlı yığın büyümesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Büyüme ayrılmış pencereyi geçmez.",
      "action": "os_page_faults_stack_grow_negative testini oluştur: “Heap içine atlayan SP”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Büyüme ayrılmış pencereyi geçmez",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_stack_grow"
      },
      "dependencies": [
        "K893"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Guard üstü komşu erişim",
      "counterexample": "Heap içine atlayan SP",
      "guestAcceptance": "Sınır dışı task sonlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_stack_grow_positive",
        "negativeName": "os_page_faults_stack_grow_negative",
        "expectedMarker": "TURKOS/OS/K895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Heap içine atlayan SP karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Heap içine atlayan SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k894"
    },
    {
      "id": "K895",
      "number": 895,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.stack_grow",
      "stage": "integration",
      "title": "Sınırlı yığın büyümesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Büyüme ayrılmış pencereyi geçmez.",
      "action": "Tek ürün Image'ında “Sınır dışı task sonlanır” kabulünü koştur. scripts/os-acceptance/page_faults.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Büyüme ayrılmış pencereyi geçmez",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_stack_grow"
      },
      "dependencies": [
        "K894"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "Guard üstü komşu erişim",
      "counterexample": "Heap içine atlayan SP",
      "guestAcceptance": "Sınır dışı task sonlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_stack_grow_positive",
        "negativeName": "os_page_faults_stack_grow_negative",
        "expectedMarker": "TURKOS/OS/K895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sınır dışı task sonlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Heap içine atlayan SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k895"
    },
    {
      "id": "K896",
      "number": 896,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.copy_on_write",
      "stage": "contract",
      "title": "COW sayfa ayrışması · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yazıcı özel kopya alır okuyucu aynı veride kalır.",
      "action": "“COW sayfa ayrışması” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yazıcı özel kopya alır okuyucu aynı veride kalır. “A B ortak RO veri” kabulü ile “Kopya tahsisinde ENOSPC” reddini aynı sözleşmeye bağla.",
      "invariant": "Yazıcı özel kopya alır okuyucu aynı veride kalır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_copy_on_write"
      },
      "dependencies": [
        "K895"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B ortak RO veri",
      "counterexample": "Kopya tahsisinde ENOSPC",
      "guestAcceptance": "A yazınca B hash değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_copy_on_write_positive",
        "negativeName": "os_page_faults_copy_on_write_negative",
        "expectedMarker": "TURKOS/OS/K900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yazıcı özel kopya alır okuyucu aynı veride kalır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kopya tahsisinde ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k896"
    },
    {
      "id": "K897",
      "number": 897,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.copy_on_write",
      "stage": "implementation",
      "title": "COW sayfa ayrışması · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yazıcı özel kopya alır okuyucu aynı veride kalır.",
      "action": "kernel/src/runtime/page_faults.rs hedefinde os_page_faults_copy_on_write yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yazıcı özel kopya alır okuyucu aynı veride kalır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_copy_on_write"
      },
      "dependencies": [
        "K896"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B ortak RO veri",
      "counterexample": "Kopya tahsisinde ENOSPC",
      "guestAcceptance": "A yazınca B hash değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_copy_on_write_positive",
        "negativeName": "os_page_faults_copy_on_write_negative",
        "expectedMarker": "TURKOS/OS/K900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. A B ortak RO veri ile Kopya tahsisinde ENOSPC ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kopya tahsisinde ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k897"
    },
    {
      "id": "K898",
      "number": 898,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.copy_on_write",
      "stage": "positive",
      "title": "COW sayfa ayrışması · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yazıcı özel kopya alır okuyucu aynı veride kalır.",
      "action": "os_page_faults_copy_on_write_positive testini oluştur: “A B ortak RO veri”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yazıcı özel kopya alır okuyucu aynı veride kalır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_copy_on_write"
      },
      "dependencies": [
        "K897"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B ortak RO veri",
      "counterexample": "Kopya tahsisinde ENOSPC",
      "guestAcceptance": "A yazınca B hash değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_copy_on_write_positive",
        "negativeName": "os_page_faults_copy_on_write_negative",
        "expectedMarker": "TURKOS/OS/K900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; A B ortak RO veri girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kopya tahsisinde ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k898"
    },
    {
      "id": "K899",
      "number": 899,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.copy_on_write",
      "stage": "negative",
      "title": "COW sayfa ayrışması · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yazıcı özel kopya alır okuyucu aynı veride kalır.",
      "action": "os_page_faults_copy_on_write_negative testini oluştur: “Kopya tahsisinde ENOSPC”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yazıcı özel kopya alır okuyucu aynı veride kalır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_copy_on_write"
      },
      "dependencies": [
        "K898"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B ortak RO veri",
      "counterexample": "Kopya tahsisinde ENOSPC",
      "guestAcceptance": "A yazınca B hash değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_copy_on_write_positive",
        "negativeName": "os_page_faults_copy_on_write_negative",
        "expectedMarker": "TURKOS/OS/K900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kopya tahsisinde ENOSPC karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kopya tahsisinde ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k899"
    },
    {
      "id": "K900",
      "number": 900,
      "phase": 3,
      "module": "page_faults",
      "feature": "page_faults.copy_on_write",
      "stage": "integration",
      "title": "COW sayfa ayrışması · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Sabit iki kullanıcı sayfası yerine her sürecin bağımsız ve ömrü yönetilen adres alanı gerekir. Bu hamlenin koruduğu değişmez: Yazıcı özel kopya alır okuyucu aynı veride kalır.",
      "action": "Tek ürün Image'ında “A yazınca B hash değişmez” kabulünü koştur. scripts/os-acceptance/page_faults.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yazıcı özel kopya alır okuyucu aynı veride kalır",
      "source": {
        "target": "kernel/src/runtime/page_faults.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_page_faults_copy_on_write"
      },
      "dependencies": [
        "K899"
      ],
      "phasePrerequisites": [
        2
      ],
      "positive": "A B ortak RO veri",
      "counterexample": "Kopya tahsisinde ENOSPC",
      "guestAcceptance": "A yazınca B hash değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/page_faults.rs",
        "harness": "scripts/os-acceptance/page_faults.mjs",
        "positiveName": "os_page_faults_copy_on_write_positive",
        "negativeName": "os_page_faults_copy_on_write_negative",
        "expectedMarker": "TURKOS/OS/K900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "A yazınca B hash değişmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kopya tahsisinde ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-03#k900"
    },
    {
      "id": "K901",
      "number": 901,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.vectors",
      "stage": "contract",
      "title": "Bütün exception slotları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Her slot doğru EL ve stack kullanır.",
      "action": "“Bütün exception slotları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her slot doğru EL ve stack kullanır. “EL1 IRQ EL0 SVC fault” kabulü ile “Yanlış alt EL slotu” reddini aynı sözleşmeye bağla.",
      "invariant": "Her slot doğru EL ve stack kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_vectors"
      },
      "dependencies": [],
      "phasePrerequisites": [
        3
      ],
      "positive": "EL1 IRQ EL0 SVC fault",
      "counterexample": "Yanlış alt EL slotu",
      "guestAcceptance": "Vektör kimlikleri doğru seri olay üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_vectors_positive",
        "negativeName": "os_exceptions_vectors_negative",
        "expectedMarker": "TURKOS/OS/K905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her slot doğru EL ve stack kullanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanlış alt EL slotu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k901"
    },
    {
      "id": "K902",
      "number": 902,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.vectors",
      "stage": "implementation",
      "title": "Bütün exception slotları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Her slot doğru EL ve stack kullanır.",
      "action": "kernel/src/arch/aarch64/exceptions.rs hedefinde os_exceptions_vectors yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her slot doğru EL ve stack kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_vectors"
      },
      "dependencies": [
        "K901"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "EL1 IRQ EL0 SVC fault",
      "counterexample": "Yanlış alt EL slotu",
      "guestAcceptance": "Vektör kimlikleri doğru seri olay üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_vectors_positive",
        "negativeName": "os_exceptions_vectors_negative",
        "expectedMarker": "TURKOS/OS/K905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. EL1 IRQ EL0 SVC fault ile Yanlış alt EL slotu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanlış alt EL slotu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k902"
    },
    {
      "id": "K903",
      "number": 903,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.vectors",
      "stage": "positive",
      "title": "Bütün exception slotları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Her slot doğru EL ve stack kullanır.",
      "action": "os_exceptions_vectors_positive testini oluştur: “EL1 IRQ EL0 SVC fault”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her slot doğru EL ve stack kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_vectors"
      },
      "dependencies": [
        "K902"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "EL1 IRQ EL0 SVC fault",
      "counterexample": "Yanlış alt EL slotu",
      "guestAcceptance": "Vektör kimlikleri doğru seri olay üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_vectors_positive",
        "negativeName": "os_exceptions_vectors_negative",
        "expectedMarker": "TURKOS/OS/K905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; EL1 IRQ EL0 SVC fault girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanlış alt EL slotu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k903"
    },
    {
      "id": "K904",
      "number": 904,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.vectors",
      "stage": "negative",
      "title": "Bütün exception slotları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Her slot doğru EL ve stack kullanır.",
      "action": "os_exceptions_vectors_negative testini oluştur: “Yanlış alt EL slotu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her slot doğru EL ve stack kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_vectors"
      },
      "dependencies": [
        "K903"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "EL1 IRQ EL0 SVC fault",
      "counterexample": "Yanlış alt EL slotu",
      "guestAcceptance": "Vektör kimlikleri doğru seri olay üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_vectors_positive",
        "negativeName": "os_exceptions_vectors_negative",
        "expectedMarker": "TURKOS/OS/K905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış alt EL slotu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanlış alt EL slotu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k904"
    },
    {
      "id": "K905",
      "number": 905,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.vectors",
      "stage": "integration",
      "title": "Bütün exception slotları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Her slot doğru EL ve stack kullanır.",
      "action": "Tek ürün Image'ında “Vektör kimlikleri doğru seri olay üretir” kabulünü koştur. scripts/os-acceptance/exceptions.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her slot doğru EL ve stack kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_vectors"
      },
      "dependencies": [
        "K904"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "EL1 IRQ EL0 SVC fault",
      "counterexample": "Yanlış alt EL slotu",
      "guestAcceptance": "Vektör kimlikleri doğru seri olay üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_vectors_positive",
        "negativeName": "os_exceptions_vectors_negative",
        "expectedMarker": "TURKOS/OS/K905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Vektör kimlikleri doğru seri olay üretir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanlış alt EL slotu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k905"
    },
    {
      "id": "K906",
      "number": 906,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.frames",
      "stage": "contract",
      "title": "GP SIMD exception çerçevesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Giriş ve çıkış aynı ABI ofsetini kullanır.",
      "action": "“GP SIMD exception çerçevesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Giriş ve çıkış aynı ABI ofsetini kullanır. “x0 x30 v0 v31 tanıkları” kabulü ile “Bozuk SP veya çerçeve kanaryası” reddini aynı sözleşmeye bağla.",
      "invariant": "Giriş ve çıkış aynı ABI ofsetini kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_frames"
      },
      "dependencies": [
        "K905"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "x0 x30 v0 v31 tanıkları",
      "counterexample": "Bozuk SP veya çerçeve kanaryası",
      "guestAcceptance": "ERET sonrası tanıklar eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_frames_positive",
        "negativeName": "os_exceptions_frames_negative",
        "expectedMarker": "TURKOS/OS/K910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Giriş ve çıkış aynı ABI ofsetini kullanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk SP veya çerçeve kanaryası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k906"
    },
    {
      "id": "K907",
      "number": 907,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.frames",
      "stage": "implementation",
      "title": "GP SIMD exception çerçevesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Giriş ve çıkış aynı ABI ofsetini kullanır.",
      "action": "kernel/src/arch/aarch64/exceptions.rs hedefinde os_exceptions_frames yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Giriş ve çıkış aynı ABI ofsetini kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_frames"
      },
      "dependencies": [
        "K906"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "x0 x30 v0 v31 tanıkları",
      "counterexample": "Bozuk SP veya çerçeve kanaryası",
      "guestAcceptance": "ERET sonrası tanıklar eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_frames_positive",
        "negativeName": "os_exceptions_frames_negative",
        "expectedMarker": "TURKOS/OS/K910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. x0 x30 v0 v31 tanıkları ile Bozuk SP veya çerçeve kanaryası ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk SP veya çerçeve kanaryası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k907"
    },
    {
      "id": "K908",
      "number": 908,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.frames",
      "stage": "positive",
      "title": "GP SIMD exception çerçevesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Giriş ve çıkış aynı ABI ofsetini kullanır.",
      "action": "os_exceptions_frames_positive testini oluştur: “x0 x30 v0 v31 tanıkları”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Giriş ve çıkış aynı ABI ofsetini kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_frames"
      },
      "dependencies": [
        "K907"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "x0 x30 v0 v31 tanıkları",
      "counterexample": "Bozuk SP veya çerçeve kanaryası",
      "guestAcceptance": "ERET sonrası tanıklar eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_frames_positive",
        "negativeName": "os_exceptions_frames_negative",
        "expectedMarker": "TURKOS/OS/K910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; x0 x30 v0 v31 tanıkları girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk SP veya çerçeve kanaryası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k908"
    },
    {
      "id": "K909",
      "number": 909,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.frames",
      "stage": "negative",
      "title": "GP SIMD exception çerçevesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Giriş ve çıkış aynı ABI ofsetini kullanır.",
      "action": "os_exceptions_frames_negative testini oluştur: “Bozuk SP veya çerçeve kanaryası”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Giriş ve çıkış aynı ABI ofsetini kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_frames"
      },
      "dependencies": [
        "K908"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "x0 x30 v0 v31 tanıkları",
      "counterexample": "Bozuk SP veya çerçeve kanaryası",
      "guestAcceptance": "ERET sonrası tanıklar eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_frames_positive",
        "negativeName": "os_exceptions_frames_negative",
        "expectedMarker": "TURKOS/OS/K910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk SP veya çerçeve kanaryası karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk SP veya çerçeve kanaryası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k909"
    },
    {
      "id": "K910",
      "number": 910,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.frames",
      "stage": "integration",
      "title": "GP SIMD exception çerçevesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Giriş ve çıkış aynı ABI ofsetini kullanır.",
      "action": "Tek ürün Image'ında “ERET sonrası tanıklar eşit” kabulünü koştur. scripts/os-acceptance/exceptions.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Giriş ve çıkış aynı ABI ofsetini kullanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_frames"
      },
      "dependencies": [
        "K909"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "x0 x30 v0 v31 tanıkları",
      "counterexample": "Bozuk SP veya çerçeve kanaryası",
      "guestAcceptance": "ERET sonrası tanıklar eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_frames_positive",
        "negativeName": "os_exceptions_frames_negative",
        "expectedMarker": "TURKOS/OS/K910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ERET sonrası tanıklar eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk SP veya çerçeve kanaryası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k910"
    },
    {
      "id": "K911",
      "number": 911,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.nested",
      "stage": "contract",
      "title": "İç içe exception politikası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İzin verilen nesting derinliği sınırlıdır.",
      "action": "“İç içe exception politikası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İzin verilen nesting derinliği sınırlıdır. “Syscall sırasında timer” kabulü ile “IRQ içinde ikinci fatal” reddini aynı sözleşmeye bağla.",
      "invariant": "İzin verilen nesting derinliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_nested"
      },
      "dependencies": [
        "K910"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Syscall sırasında timer",
      "counterexample": "IRQ içinde ikinci fatal",
      "guestAcceptance": "Kernel deterministik panik yoluna gider",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_nested_positive",
        "negativeName": "os_exceptions_nested_negative",
        "expectedMarker": "TURKOS/OS/K915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İzin verilen nesting derinliği sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“IRQ içinde ikinci fatal” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k911"
    },
    {
      "id": "K912",
      "number": 912,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.nested",
      "stage": "implementation",
      "title": "İç içe exception politikası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İzin verilen nesting derinliği sınırlıdır.",
      "action": "kernel/src/arch/aarch64/exceptions.rs hedefinde os_exceptions_nested yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İzin verilen nesting derinliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_nested"
      },
      "dependencies": [
        "K911"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Syscall sırasında timer",
      "counterexample": "IRQ içinde ikinci fatal",
      "guestAcceptance": "Kernel deterministik panik yoluna gider",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_nested_positive",
        "negativeName": "os_exceptions_nested_negative",
        "expectedMarker": "TURKOS/OS/K915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Syscall sırasında timer ile IRQ içinde ikinci fatal ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“IRQ içinde ikinci fatal” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k912"
    },
    {
      "id": "K913",
      "number": 913,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.nested",
      "stage": "positive",
      "title": "İç içe exception politikası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İzin verilen nesting derinliği sınırlıdır.",
      "action": "os_exceptions_nested_positive testini oluştur: “Syscall sırasında timer”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İzin verilen nesting derinliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_nested"
      },
      "dependencies": [
        "K912"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Syscall sırasında timer",
      "counterexample": "IRQ içinde ikinci fatal",
      "guestAcceptance": "Kernel deterministik panik yoluna gider",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_nested_positive",
        "negativeName": "os_exceptions_nested_negative",
        "expectedMarker": "TURKOS/OS/K915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Syscall sırasında timer girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“IRQ içinde ikinci fatal” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k913"
    },
    {
      "id": "K914",
      "number": 914,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.nested",
      "stage": "negative",
      "title": "İç içe exception politikası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İzin verilen nesting derinliği sınırlıdır.",
      "action": "os_exceptions_nested_negative testini oluştur: “IRQ içinde ikinci fatal”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İzin verilen nesting derinliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_nested"
      },
      "dependencies": [
        "K913"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Syscall sırasında timer",
      "counterexample": "IRQ içinde ikinci fatal",
      "guestAcceptance": "Kernel deterministik panik yoluna gider",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_nested_positive",
        "negativeName": "os_exceptions_nested_negative",
        "expectedMarker": "TURKOS/OS/K915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "IRQ içinde ikinci fatal karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“IRQ içinde ikinci fatal” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k914"
    },
    {
      "id": "K915",
      "number": 915,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.nested",
      "stage": "integration",
      "title": "İç içe exception politikası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İzin verilen nesting derinliği sınırlıdır.",
      "action": "Tek ürün Image'ında “Kernel deterministik panik yoluna gider” kabulünü koştur. scripts/os-acceptance/exceptions.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İzin verilen nesting derinliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_nested"
      },
      "dependencies": [
        "K914"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Syscall sırasında timer",
      "counterexample": "IRQ içinde ikinci fatal",
      "guestAcceptance": "Kernel deterministik panik yoluna gider",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_nested_positive",
        "negativeName": "os_exceptions_nested_negative",
        "expectedMarker": "TURKOS/OS/K915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel deterministik panik yoluna gider; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“IRQ içinde ikinci fatal” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k915"
    },
    {
      "id": "K916",
      "number": 916,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.return",
      "stage": "contract",
      "title": "EL0 dönüş kontrolü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: ELR SP SPSR süreç yetkisiyle doğrulanır.",
      "action": "“EL0 dönüş kontrolü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: ELR SP SPSR süreç yetkisiyle doğrulanır. “RX entry ve hizalı SP” kabulü ile “EL1 dönüş isteyen kullanıcı frame” reddini aynı sözleşmeye bağla.",
      "invariant": "ELR SP SPSR süreç yetkisiyle doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_return"
      },
      "dependencies": [
        "K915"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "RX entry ve hizalı SP",
      "counterexample": "EL1 dönüş isteyen kullanıcı frame",
      "guestAcceptance": "Bozuk dönüş öncesi süreç reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_return_positive",
        "negativeName": "os_exceptions_return_negative",
        "expectedMarker": "TURKOS/OS/K920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu ELR SP SPSR süreç yetkisiyle doğrulanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“EL1 dönüş isteyen kullanıcı frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k916"
    },
    {
      "id": "K917",
      "number": 917,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.return",
      "stage": "implementation",
      "title": "EL0 dönüş kontrolü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: ELR SP SPSR süreç yetkisiyle doğrulanır.",
      "action": "kernel/src/arch/aarch64/exceptions.rs hedefinde os_exceptions_return yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/exception.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "ELR SP SPSR süreç yetkisiyle doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_return"
      },
      "dependencies": [
        "K916"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "RX entry ve hizalı SP",
      "counterexample": "EL1 dönüş isteyen kullanıcı frame",
      "guestAcceptance": "Bozuk dönüş öncesi süreç reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_return_positive",
        "negativeName": "os_exceptions_return_negative",
        "expectedMarker": "TURKOS/OS/K920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. RX entry ve hizalı SP ile EL1 dönüş isteyen kullanıcı frame ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“EL1 dönüş isteyen kullanıcı frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k917"
    },
    {
      "id": "K918",
      "number": 918,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.return",
      "stage": "positive",
      "title": "EL0 dönüş kontrolü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: ELR SP SPSR süreç yetkisiyle doğrulanır.",
      "action": "os_exceptions_return_positive testini oluştur: “RX entry ve hizalı SP”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "ELR SP SPSR süreç yetkisiyle doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_return"
      },
      "dependencies": [
        "K917"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "RX entry ve hizalı SP",
      "counterexample": "EL1 dönüş isteyen kullanıcı frame",
      "guestAcceptance": "Bozuk dönüş öncesi süreç reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_return_positive",
        "negativeName": "os_exceptions_return_negative",
        "expectedMarker": "TURKOS/OS/K920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; RX entry ve hizalı SP girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“EL1 dönüş isteyen kullanıcı frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k918"
    },
    {
      "id": "K919",
      "number": 919,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.return",
      "stage": "negative",
      "title": "EL0 dönüş kontrolü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: ELR SP SPSR süreç yetkisiyle doğrulanır.",
      "action": "os_exceptions_return_negative testini oluştur: “EL1 dönüş isteyen kullanıcı frame”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "ELR SP SPSR süreç yetkisiyle doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_return"
      },
      "dependencies": [
        "K918"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "RX entry ve hizalı SP",
      "counterexample": "EL1 dönüş isteyen kullanıcı frame",
      "guestAcceptance": "Bozuk dönüş öncesi süreç reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_return_positive",
        "negativeName": "os_exceptions_return_negative",
        "expectedMarker": "TURKOS/OS/K920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EL1 dönüş isteyen kullanıcı frame karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“EL1 dönüş isteyen kullanıcı frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k919"
    },
    {
      "id": "K920",
      "number": 920,
      "phase": 4,
      "module": "exceptions",
      "feature": "exceptions.return",
      "stage": "integration",
      "title": "EL0 dönüş kontrolü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: ELR SP SPSR süreç yetkisiyle doğrulanır.",
      "action": "Tek ürün Image'ında “Bozuk dönüş öncesi süreç reddedilir” kabulünü koştur. scripts/os-acceptance/exceptions.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "ELR SP SPSR süreç yetkisiyle doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/exceptions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/exception.rs",
        "existingReferenceSha256": "d86690674bb10171c7a3ac38eb294f9cb51b585e8ec6f230469a3428f24a3c9d",
        "symbol": "os_exceptions_return"
      },
      "dependencies": [
        "K919"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "RX entry ve hizalı SP",
      "counterexample": "EL1 dönüş isteyen kullanıcı frame",
      "guestAcceptance": "Bozuk dönüş öncesi süreç reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exceptions.rs",
        "harness": "scripts/os-acceptance/exceptions.mjs",
        "positiveName": "os_exceptions_return_positive",
        "negativeName": "os_exceptions_return_negative",
        "expectedMarker": "TURKOS/OS/K920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk dönüş öncesi süreç reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“EL1 dönüş isteyen kullanıcı frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k920"
    },
    {
      "id": "K921",
      "number": 921,
      "phase": 4,
      "module": "gic",
      "feature": "gic.routing",
      "stage": "contract",
      "title": "INTID sahip ve hedef kaydı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kaynak tek hizmete ve CPUya bağlanır.",
      "action": "“INTID sahip ve hedef kaydı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kaynak tek hizmete ve CPUya bağlanır. “Timer PPI ve aygıt SPI” kabulü ile “İki hizmet aynı INTID ister” reddini aynı sözleşmeye bağla.",
      "invariant": "Kaynak tek hizmete ve CPUya bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_routing"
      },
      "dependencies": [
        "K920"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Timer PPI ve aygıt SPI",
      "counterexample": "İki hizmet aynı INTID ister",
      "guestAcceptance": "Hedef hizmet bir kez çağrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_routing_positive",
        "negativeName": "os_gic_routing_negative",
        "expectedMarker": "TURKOS/OS/K925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kaynak tek hizmete ve CPUya bağlanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki hizmet aynı INTID ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k921"
    },
    {
      "id": "K922",
      "number": 922,
      "phase": 4,
      "module": "gic",
      "feature": "gic.routing",
      "stage": "implementation",
      "title": "INTID sahip ve hedef kaydı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kaynak tek hizmete ve CPUya bağlanır.",
      "action": "kernel/src/arch/aarch64/gic.rs hedefinde os_gic_routing yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/irq.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kaynak tek hizmete ve CPUya bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_routing"
      },
      "dependencies": [
        "K921"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Timer PPI ve aygıt SPI",
      "counterexample": "İki hizmet aynı INTID ister",
      "guestAcceptance": "Hedef hizmet bir kez çağrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_routing_positive",
        "negativeName": "os_gic_routing_negative",
        "expectedMarker": "TURKOS/OS/K925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Timer PPI ve aygıt SPI ile İki hizmet aynı INTID ister ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki hizmet aynı INTID ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k922"
    },
    {
      "id": "K923",
      "number": 923,
      "phase": 4,
      "module": "gic",
      "feature": "gic.routing",
      "stage": "positive",
      "title": "INTID sahip ve hedef kaydı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kaynak tek hizmete ve CPUya bağlanır.",
      "action": "os_gic_routing_positive testini oluştur: “Timer PPI ve aygıt SPI”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kaynak tek hizmete ve CPUya bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_routing"
      },
      "dependencies": [
        "K922"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Timer PPI ve aygıt SPI",
      "counterexample": "İki hizmet aynı INTID ister",
      "guestAcceptance": "Hedef hizmet bir kez çağrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_routing_positive",
        "negativeName": "os_gic_routing_negative",
        "expectedMarker": "TURKOS/OS/K925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Timer PPI ve aygıt SPI girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki hizmet aynı INTID ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k923"
    },
    {
      "id": "K924",
      "number": 924,
      "phase": 4,
      "module": "gic",
      "feature": "gic.routing",
      "stage": "negative",
      "title": "INTID sahip ve hedef kaydı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kaynak tek hizmete ve CPUya bağlanır.",
      "action": "os_gic_routing_negative testini oluştur: “İki hizmet aynı INTID ister”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kaynak tek hizmete ve CPUya bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_routing"
      },
      "dependencies": [
        "K923"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Timer PPI ve aygıt SPI",
      "counterexample": "İki hizmet aynı INTID ister",
      "guestAcceptance": "Hedef hizmet bir kez çağrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_routing_positive",
        "negativeName": "os_gic_routing_negative",
        "expectedMarker": "TURKOS/OS/K925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki hizmet aynı INTID ister karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki hizmet aynı INTID ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k924"
    },
    {
      "id": "K925",
      "number": 925,
      "phase": 4,
      "module": "gic",
      "feature": "gic.routing",
      "stage": "integration",
      "title": "INTID sahip ve hedef kaydı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kaynak tek hizmete ve CPUya bağlanır.",
      "action": "Tek ürün Image'ında “Hedef hizmet bir kez çağrılır” kabulünü koştur. scripts/os-acceptance/gic.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kaynak tek hizmete ve CPUya bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_routing"
      },
      "dependencies": [
        "K924"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Timer PPI ve aygıt SPI",
      "counterexample": "İki hizmet aynı INTID ister",
      "guestAcceptance": "Hedef hizmet bir kez çağrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_routing_positive",
        "negativeName": "os_gic_routing_negative",
        "expectedMarker": "TURKOS/OS/K925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hedef hizmet bir kez çağrılır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki hizmet aynı INTID ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k925"
    },
    {
      "id": "K926",
      "number": 926,
      "phase": 4,
      "module": "gic",
      "feature": "gic.ack",
      "stage": "contract",
      "title": "Acknowledge ve EOI sırası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Spurious değere EOI yapılmaz.",
      "action": "“Acknowledge ve EOI sırası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Spurious değere EOI yapılmaz. “SGI ardından 1023” kabulü ile “Bilinmeyen INTID maskesiz döner” reddini aynı sözleşmeye bağla.",
      "invariant": "Spurious değere EOI yapılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_ack"
      },
      "dependencies": [
        "K925"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "SGI ardından 1023",
      "counterexample": "Bilinmeyen INTID maskesiz döner",
      "guestAcceptance": "Mask readback EOI ERET sırası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_ack_positive",
        "negativeName": "os_gic_ack_negative",
        "expectedMarker": "TURKOS/OS/K930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Spurious değere EOI yapılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bilinmeyen INTID maskesiz döner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k926"
    },
    {
      "id": "K927",
      "number": 927,
      "phase": 4,
      "module": "gic",
      "feature": "gic.ack",
      "stage": "implementation",
      "title": "Acknowledge ve EOI sırası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Spurious değere EOI yapılmaz.",
      "action": "kernel/src/arch/aarch64/gic.rs hedefinde os_gic_ack yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/irq.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Spurious değere EOI yapılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_ack"
      },
      "dependencies": [
        "K926"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "SGI ardından 1023",
      "counterexample": "Bilinmeyen INTID maskesiz döner",
      "guestAcceptance": "Mask readback EOI ERET sırası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_ack_positive",
        "negativeName": "os_gic_ack_negative",
        "expectedMarker": "TURKOS/OS/K930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. SGI ardından 1023 ile Bilinmeyen INTID maskesiz döner ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bilinmeyen INTID maskesiz döner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k927"
    },
    {
      "id": "K928",
      "number": 928,
      "phase": 4,
      "module": "gic",
      "feature": "gic.ack",
      "stage": "positive",
      "title": "Acknowledge ve EOI sırası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Spurious değere EOI yapılmaz.",
      "action": "os_gic_ack_positive testini oluştur: “SGI ardından 1023”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Spurious değere EOI yapılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_ack"
      },
      "dependencies": [
        "K927"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "SGI ardından 1023",
      "counterexample": "Bilinmeyen INTID maskesiz döner",
      "guestAcceptance": "Mask readback EOI ERET sırası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_ack_positive",
        "negativeName": "os_gic_ack_negative",
        "expectedMarker": "TURKOS/OS/K930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; SGI ardından 1023 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bilinmeyen INTID maskesiz döner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k928"
    },
    {
      "id": "K929",
      "number": 929,
      "phase": 4,
      "module": "gic",
      "feature": "gic.ack",
      "stage": "negative",
      "title": "Acknowledge ve EOI sırası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Spurious değere EOI yapılmaz.",
      "action": "os_gic_ack_negative testini oluştur: “Bilinmeyen INTID maskesiz döner”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Spurious değere EOI yapılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_ack"
      },
      "dependencies": [
        "K928"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "SGI ardından 1023",
      "counterexample": "Bilinmeyen INTID maskesiz döner",
      "guestAcceptance": "Mask readback EOI ERET sırası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_ack_positive",
        "negativeName": "os_gic_ack_negative",
        "expectedMarker": "TURKOS/OS/K930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bilinmeyen INTID maskesiz döner karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bilinmeyen INTID maskesiz döner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k929"
    },
    {
      "id": "K930",
      "number": 930,
      "phase": 4,
      "module": "gic",
      "feature": "gic.ack",
      "stage": "integration",
      "title": "Acknowledge ve EOI sırası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Spurious değere EOI yapılmaz.",
      "action": "Tek ürün Image'ında “Mask readback EOI ERET sırası” kabulünü koştur. scripts/os-acceptance/gic.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Spurious değere EOI yapılmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_ack"
      },
      "dependencies": [
        "K929"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "SGI ardından 1023",
      "counterexample": "Bilinmeyen INTID maskesiz döner",
      "guestAcceptance": "Mask readback EOI ERET sırası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_ack_positive",
        "negativeName": "os_gic_ack_negative",
        "expectedMarker": "TURKOS/OS/K930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Mask readback EOI ERET sırası; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bilinmeyen INTID maskesiz döner” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k930"
    },
    {
      "id": "K931",
      "number": 931,
      "phase": 4,
      "module": "gic",
      "feature": "gic.budget",
      "stage": "contract",
      "title": "IRQ fırtına bütçesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Bir giriş sınırsız kuyruk tüketmez.",
      "action": "“IRQ fırtına bütçesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bir giriş sınırsız kuyruk tüketmez. “32 yoğun completion” kabulü ile “Sürekli interrupt kaynağı” reddini aynı sözleşmeye bağla.",
      "invariant": "Bir giriş sınırsız kuyruk tüketmez",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_budget"
      },
      "dependencies": [
        "K930"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "32 yoğun completion",
      "counterexample": "Sürekli interrupt kaynağı",
      "guestAcceptance": "Ana döngü ve diğer görev ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_budget_positive",
        "negativeName": "os_gic_budget_negative",
        "expectedMarker": "TURKOS/OS/K935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bir giriş sınırsız kuyruk tüketmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sürekli interrupt kaynağı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k931"
    },
    {
      "id": "K932",
      "number": 932,
      "phase": 4,
      "module": "gic",
      "feature": "gic.budget",
      "stage": "implementation",
      "title": "IRQ fırtına bütçesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Bir giriş sınırsız kuyruk tüketmez.",
      "action": "kernel/src/arch/aarch64/gic.rs hedefinde os_gic_budget yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/irq.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bir giriş sınırsız kuyruk tüketmez",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_budget"
      },
      "dependencies": [
        "K931"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "32 yoğun completion",
      "counterexample": "Sürekli interrupt kaynağı",
      "guestAcceptance": "Ana döngü ve diğer görev ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_budget_positive",
        "negativeName": "os_gic_budget_negative",
        "expectedMarker": "TURKOS/OS/K935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 32 yoğun completion ile Sürekli interrupt kaynağı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sürekli interrupt kaynağı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k932"
    },
    {
      "id": "K933",
      "number": 933,
      "phase": 4,
      "module": "gic",
      "feature": "gic.budget",
      "stage": "positive",
      "title": "IRQ fırtına bütçesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Bir giriş sınırsız kuyruk tüketmez.",
      "action": "os_gic_budget_positive testini oluştur: “32 yoğun completion”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bir giriş sınırsız kuyruk tüketmez",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_budget"
      },
      "dependencies": [
        "K932"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "32 yoğun completion",
      "counterexample": "Sürekli interrupt kaynağı",
      "guestAcceptance": "Ana döngü ve diğer görev ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_budget_positive",
        "negativeName": "os_gic_budget_negative",
        "expectedMarker": "TURKOS/OS/K935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 32 yoğun completion girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sürekli interrupt kaynağı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k933"
    },
    {
      "id": "K934",
      "number": 934,
      "phase": 4,
      "module": "gic",
      "feature": "gic.budget",
      "stage": "negative",
      "title": "IRQ fırtına bütçesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Bir giriş sınırsız kuyruk tüketmez.",
      "action": "os_gic_budget_negative testini oluştur: “Sürekli interrupt kaynağı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bir giriş sınırsız kuyruk tüketmez",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_budget"
      },
      "dependencies": [
        "K933"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "32 yoğun completion",
      "counterexample": "Sürekli interrupt kaynağı",
      "guestAcceptance": "Ana döngü ve diğer görev ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_budget_positive",
        "negativeName": "os_gic_budget_negative",
        "expectedMarker": "TURKOS/OS/K935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sürekli interrupt kaynağı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sürekli interrupt kaynağı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k934"
    },
    {
      "id": "K935",
      "number": 935,
      "phase": 4,
      "module": "gic",
      "feature": "gic.budget",
      "stage": "integration",
      "title": "IRQ fırtına bütçesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Bir giriş sınırsız kuyruk tüketmez.",
      "action": "Tek ürün Image'ında “Ana döngü ve diğer görev ilerler” kabulünü koştur. scripts/os-acceptance/gic.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bir giriş sınırsız kuyruk tüketmez",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_budget"
      },
      "dependencies": [
        "K934"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "32 yoğun completion",
      "counterexample": "Sürekli interrupt kaynağı",
      "guestAcceptance": "Ana döngü ve diğer görev ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_budget_positive",
        "negativeName": "os_gic_budget_negative",
        "expectedMarker": "TURKOS/OS/K935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ana döngü ve diğer görev ilerler; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sürekli interrupt kaynağı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k935"
    },
    {
      "id": "K936",
      "number": 936,
      "phase": 4,
      "module": "gic",
      "feature": "gic.teardown",
      "stage": "contract",
      "title": "IRQ kaydını güvenli sökme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Aktif handler bitmeden kaynak free olmaz.",
      "action": "“IRQ kaydını güvenli sökme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aktif handler bitmeden kaynak free olmaz. “Aygıt kapatılırken IRQ” kabulü ile “Ölü callback yeniden çağrılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Aktif handler bitmeden kaynak free olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_teardown"
      },
      "dependencies": [
        "K935"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aygıt kapatılırken IRQ",
      "counterexample": "Ölü callback yeniden çağrılır",
      "guestAcceptance": "Son handler sonrası tek serbest bırakma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_teardown_positive",
        "negativeName": "os_gic_teardown_negative",
        "expectedMarker": "TURKOS/OS/K940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aktif handler bitmeden kaynak free olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ölü callback yeniden çağrılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k936"
    },
    {
      "id": "K937",
      "number": 937,
      "phase": 4,
      "module": "gic",
      "feature": "gic.teardown",
      "stage": "implementation",
      "title": "IRQ kaydını güvenli sökme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Aktif handler bitmeden kaynak free olmaz.",
      "action": "kernel/src/arch/aarch64/gic.rs hedefinde os_gic_teardown yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/irq.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aktif handler bitmeden kaynak free olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_teardown"
      },
      "dependencies": [
        "K936"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aygıt kapatılırken IRQ",
      "counterexample": "Ölü callback yeniden çağrılır",
      "guestAcceptance": "Son handler sonrası tek serbest bırakma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_teardown_positive",
        "negativeName": "os_gic_teardown_negative",
        "expectedMarker": "TURKOS/OS/K940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aygıt kapatılırken IRQ ile Ölü callback yeniden çağrılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ölü callback yeniden çağrılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k937"
    },
    {
      "id": "K938",
      "number": 938,
      "phase": 4,
      "module": "gic",
      "feature": "gic.teardown",
      "stage": "positive",
      "title": "IRQ kaydını güvenli sökme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Aktif handler bitmeden kaynak free olmaz.",
      "action": "os_gic_teardown_positive testini oluştur: “Aygıt kapatılırken IRQ”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aktif handler bitmeden kaynak free olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_teardown"
      },
      "dependencies": [
        "K937"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aygıt kapatılırken IRQ",
      "counterexample": "Ölü callback yeniden çağrılır",
      "guestAcceptance": "Son handler sonrası tek serbest bırakma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_teardown_positive",
        "negativeName": "os_gic_teardown_negative",
        "expectedMarker": "TURKOS/OS/K940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aygıt kapatılırken IRQ girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ölü callback yeniden çağrılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k938"
    },
    {
      "id": "K939",
      "number": 939,
      "phase": 4,
      "module": "gic",
      "feature": "gic.teardown",
      "stage": "negative",
      "title": "IRQ kaydını güvenli sökme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Aktif handler bitmeden kaynak free olmaz.",
      "action": "os_gic_teardown_negative testini oluştur: “Ölü callback yeniden çağrılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aktif handler bitmeden kaynak free olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_teardown"
      },
      "dependencies": [
        "K938"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aygıt kapatılırken IRQ",
      "counterexample": "Ölü callback yeniden çağrılır",
      "guestAcceptance": "Son handler sonrası tek serbest bırakma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_teardown_positive",
        "negativeName": "os_gic_teardown_negative",
        "expectedMarker": "TURKOS/OS/K940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ölü callback yeniden çağrılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ölü callback yeniden çağrılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k939"
    },
    {
      "id": "K940",
      "number": 940,
      "phase": 4,
      "module": "gic",
      "feature": "gic.teardown",
      "stage": "integration",
      "title": "IRQ kaydını güvenli sökme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Aktif handler bitmeden kaynak free olmaz.",
      "action": "Tek ürün Image'ında “Son handler sonrası tek serbest bırakma” kabulünü koştur. scripts/os-acceptance/gic.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aktif handler bitmeden kaynak free olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/gic.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_gic_teardown"
      },
      "dependencies": [
        "K939"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aygıt kapatılırken IRQ",
      "counterexample": "Ölü callback yeniden çağrılır",
      "guestAcceptance": "Son handler sonrası tek serbest bırakma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/gic.rs",
        "harness": "scripts/os-acceptance/gic.mjs",
        "positiveName": "os_gic_teardown_positive",
        "negativeName": "os_gic_teardown_negative",
        "expectedMarker": "TURKOS/OS/K940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son handler sonrası tek serbest bırakma; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ölü callback yeniden çağrılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k940"
    },
    {
      "id": "K941",
      "number": 941,
      "phase": 4,
      "module": "clock",
      "feature": "clock.frequency",
      "stage": "contract",
      "title": "Sayaç frekansı sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sıfır frekans ve çarpım taşması reddedilir.",
      "action": "“Sayaç frekansı sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Sıfır frekans ve çarpım taşması reddedilir. “Bilinen CNTFRQ ve tick” kabulü ile “u64 maksimum süre” reddini aynı sözleşmeye bağla.",
      "invariant": "Sıfır frekans ve çarpım taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_frequency"
      },
      "dependencies": [
        "K940"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Bilinen CNTFRQ ve tick",
      "counterexample": "u64 maksimum süre",
      "guestAcceptance": "Dönüşüm taşmasız ve monoton",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_frequency_positive",
        "negativeName": "os_clock_frequency_negative",
        "expectedMarker": "TURKOS/OS/K945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Sıfır frekans ve çarpım taşması reddedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“u64 maksimum süre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k941"
    },
    {
      "id": "K942",
      "number": 942,
      "phase": 4,
      "module": "clock",
      "feature": "clock.frequency",
      "stage": "implementation",
      "title": "Sayaç frekansı sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sıfır frekans ve çarpım taşması reddedilir.",
      "action": "kernel/src/runtime/clock.rs hedefinde os_clock_frequency yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/irq.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Sıfır frekans ve çarpım taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_frequency"
      },
      "dependencies": [
        "K941"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Bilinen CNTFRQ ve tick",
      "counterexample": "u64 maksimum süre",
      "guestAcceptance": "Dönüşüm taşmasız ve monoton",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_frequency_positive",
        "negativeName": "os_clock_frequency_negative",
        "expectedMarker": "TURKOS/OS/K945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen CNTFRQ ve tick ile u64 maksimum süre ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“u64 maksimum süre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k942"
    },
    {
      "id": "K943",
      "number": 943,
      "phase": 4,
      "module": "clock",
      "feature": "clock.frequency",
      "stage": "positive",
      "title": "Sayaç frekansı sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sıfır frekans ve çarpım taşması reddedilir.",
      "action": "os_clock_frequency_positive testini oluştur: “Bilinen CNTFRQ ve tick”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Sıfır frekans ve çarpım taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_frequency"
      },
      "dependencies": [
        "K942"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Bilinen CNTFRQ ve tick",
      "counterexample": "u64 maksimum süre",
      "guestAcceptance": "Dönüşüm taşmasız ve monoton",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_frequency_positive",
        "negativeName": "os_clock_frequency_negative",
        "expectedMarker": "TURKOS/OS/K945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen CNTFRQ ve tick girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“u64 maksimum süre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k943"
    },
    {
      "id": "K944",
      "number": 944,
      "phase": 4,
      "module": "clock",
      "feature": "clock.frequency",
      "stage": "negative",
      "title": "Sayaç frekansı sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sıfır frekans ve çarpım taşması reddedilir.",
      "action": "os_clock_frequency_negative testini oluştur: “u64 maksimum süre”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Sıfır frekans ve çarpım taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_frequency"
      },
      "dependencies": [
        "K943"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Bilinen CNTFRQ ve tick",
      "counterexample": "u64 maksimum süre",
      "guestAcceptance": "Dönüşüm taşmasız ve monoton",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_frequency_positive",
        "negativeName": "os_clock_frequency_negative",
        "expectedMarker": "TURKOS/OS/K945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "u64 maksimum süre karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“u64 maksimum süre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k944"
    },
    {
      "id": "K945",
      "number": 945,
      "phase": 4,
      "module": "clock",
      "feature": "clock.frequency",
      "stage": "integration",
      "title": "Sayaç frekansı sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sıfır frekans ve çarpım taşması reddedilir.",
      "action": "Tek ürün Image'ında “Dönüşüm taşmasız ve monoton” kabulünü koştur. scripts/os-acceptance/clock.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Sıfır frekans ve çarpım taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_frequency"
      },
      "dependencies": [
        "K944"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Bilinen CNTFRQ ve tick",
      "counterexample": "u64 maksimum süre",
      "guestAcceptance": "Dönüşüm taşmasız ve monoton",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_frequency_positive",
        "negativeName": "os_clock_frequency_negative",
        "expectedMarker": "TURKOS/OS/K945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dönüşüm taşmasız ve monoton; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“u64 maksimum süre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k945"
    },
    {
      "id": "K946",
      "number": 946,
      "phase": 4,
      "module": "clock",
      "feature": "clock.deadlines",
      "stage": "contract",
      "title": "Mutlak deadline modeli · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Geçmiş deadline sarmalanıp geleceğe kaçmaz.",
      "action": "“Mutlak deadline modeli” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Geçmiş deadline sarmalanıp geleceğe kaçmaz. “Şimdi ve gelecekte iki timer” kabulü ile “Sayaç rollover sınırı” reddini aynı sözleşmeye bağla.",
      "invariant": "Geçmiş deadline sarmalanıp geleceğe kaçmaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_deadlines"
      },
      "dependencies": [
        "K945"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Şimdi ve gelecekte iki timer",
      "counterexample": "Sayaç rollover sınırı",
      "guestAcceptance": "Bekleyen görev doğru sırada uyanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_deadlines_positive",
        "negativeName": "os_clock_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Geçmiş deadline sarmalanıp geleceğe kaçmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sayaç rollover sınırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k946"
    },
    {
      "id": "K947",
      "number": 947,
      "phase": 4,
      "module": "clock",
      "feature": "clock.deadlines",
      "stage": "implementation",
      "title": "Mutlak deadline modeli · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Geçmiş deadline sarmalanıp geleceğe kaçmaz.",
      "action": "kernel/src/runtime/clock.rs hedefinde os_clock_deadlines yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/irq.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Geçmiş deadline sarmalanıp geleceğe kaçmaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_deadlines"
      },
      "dependencies": [
        "K946"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Şimdi ve gelecekte iki timer",
      "counterexample": "Sayaç rollover sınırı",
      "guestAcceptance": "Bekleyen görev doğru sırada uyanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_deadlines_positive",
        "negativeName": "os_clock_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Şimdi ve gelecekte iki timer ile Sayaç rollover sınırı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sayaç rollover sınırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k947"
    },
    {
      "id": "K948",
      "number": 948,
      "phase": 4,
      "module": "clock",
      "feature": "clock.deadlines",
      "stage": "positive",
      "title": "Mutlak deadline modeli · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Geçmiş deadline sarmalanıp geleceğe kaçmaz.",
      "action": "os_clock_deadlines_positive testini oluştur: “Şimdi ve gelecekte iki timer”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Geçmiş deadline sarmalanıp geleceğe kaçmaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_deadlines"
      },
      "dependencies": [
        "K947"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Şimdi ve gelecekte iki timer",
      "counterexample": "Sayaç rollover sınırı",
      "guestAcceptance": "Bekleyen görev doğru sırada uyanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_deadlines_positive",
        "negativeName": "os_clock_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Şimdi ve gelecekte iki timer girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sayaç rollover sınırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k948"
    },
    {
      "id": "K949",
      "number": 949,
      "phase": 4,
      "module": "clock",
      "feature": "clock.deadlines",
      "stage": "negative",
      "title": "Mutlak deadline modeli · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Geçmiş deadline sarmalanıp geleceğe kaçmaz.",
      "action": "os_clock_deadlines_negative testini oluştur: “Sayaç rollover sınırı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Geçmiş deadline sarmalanıp geleceğe kaçmaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_deadlines"
      },
      "dependencies": [
        "K948"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Şimdi ve gelecekte iki timer",
      "counterexample": "Sayaç rollover sınırı",
      "guestAcceptance": "Bekleyen görev doğru sırada uyanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_deadlines_positive",
        "negativeName": "os_clock_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sayaç rollover sınırı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sayaç rollover sınırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k949"
    },
    {
      "id": "K950",
      "number": 950,
      "phase": 4,
      "module": "clock",
      "feature": "clock.deadlines",
      "stage": "integration",
      "title": "Mutlak deadline modeli · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Geçmiş deadline sarmalanıp geleceğe kaçmaz.",
      "action": "Tek ürün Image'ında “Bekleyen görev doğru sırada uyanır” kabulünü koştur. scripts/os-acceptance/clock.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Geçmiş deadline sarmalanıp geleceğe kaçmaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_deadlines"
      },
      "dependencies": [
        "K949"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Şimdi ve gelecekte iki timer",
      "counterexample": "Sayaç rollover sınırı",
      "guestAcceptance": "Bekleyen görev doğru sırada uyanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_deadlines_positive",
        "negativeName": "os_clock_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bekleyen görev doğru sırada uyanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sayaç rollover sınırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k950"
    },
    {
      "id": "K951",
      "number": 951,
      "phase": 4,
      "module": "clock",
      "feature": "clock.missed",
      "stage": "contract",
      "title": "Atlanan tick muhasebesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Atlanan periyot başarı diye silinmez.",
      "action": "“Atlanan tick muhasebesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Atlanan periyot başarı diye silinmez. “Gecikmiş IRQ teslimi” kabulü ile “Bir teslim iki tick sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Atlanan periyot başarı diye silinmez",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_missed"
      },
      "dependencies": [
        "K950"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Gecikmiş IRQ teslimi",
      "counterexample": "Bir teslim iki tick sayılır",
      "guestAcceptance": "Elapsed tick ve kayıp ayrı rapor",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_missed_positive",
        "negativeName": "os_clock_missed_negative",
        "expectedMarker": "TURKOS/OS/K955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Atlanan periyot başarı diye silinmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir teslim iki tick sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k951"
    },
    {
      "id": "K952",
      "number": 952,
      "phase": 4,
      "module": "clock",
      "feature": "clock.missed",
      "stage": "implementation",
      "title": "Atlanan tick muhasebesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Atlanan periyot başarı diye silinmez.",
      "action": "kernel/src/runtime/clock.rs hedefinde os_clock_missed yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/irq.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Atlanan periyot başarı diye silinmez",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_missed"
      },
      "dependencies": [
        "K951"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Gecikmiş IRQ teslimi",
      "counterexample": "Bir teslim iki tick sayılır",
      "guestAcceptance": "Elapsed tick ve kayıp ayrı rapor",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_missed_positive",
        "negativeName": "os_clock_missed_negative",
        "expectedMarker": "TURKOS/OS/K955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Gecikmiş IRQ teslimi ile Bir teslim iki tick sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir teslim iki tick sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k952"
    },
    {
      "id": "K953",
      "number": 953,
      "phase": 4,
      "module": "clock",
      "feature": "clock.missed",
      "stage": "positive",
      "title": "Atlanan tick muhasebesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Atlanan periyot başarı diye silinmez.",
      "action": "os_clock_missed_positive testini oluştur: “Gecikmiş IRQ teslimi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Atlanan periyot başarı diye silinmez",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_missed"
      },
      "dependencies": [
        "K952"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Gecikmiş IRQ teslimi",
      "counterexample": "Bir teslim iki tick sayılır",
      "guestAcceptance": "Elapsed tick ve kayıp ayrı rapor",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_missed_positive",
        "negativeName": "os_clock_missed_negative",
        "expectedMarker": "TURKOS/OS/K955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Gecikmiş IRQ teslimi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir teslim iki tick sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k953"
    },
    {
      "id": "K954",
      "number": 954,
      "phase": 4,
      "module": "clock",
      "feature": "clock.missed",
      "stage": "negative",
      "title": "Atlanan tick muhasebesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Atlanan periyot başarı diye silinmez.",
      "action": "os_clock_missed_negative testini oluştur: “Bir teslim iki tick sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Atlanan periyot başarı diye silinmez",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_missed"
      },
      "dependencies": [
        "K953"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Gecikmiş IRQ teslimi",
      "counterexample": "Bir teslim iki tick sayılır",
      "guestAcceptance": "Elapsed tick ve kayıp ayrı rapor",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_missed_positive",
        "negativeName": "os_clock_missed_negative",
        "expectedMarker": "TURKOS/OS/K955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir teslim iki tick sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir teslim iki tick sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k954"
    },
    {
      "id": "K955",
      "number": 955,
      "phase": 4,
      "module": "clock",
      "feature": "clock.missed",
      "stage": "integration",
      "title": "Atlanan tick muhasebesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Atlanan periyot başarı diye silinmez.",
      "action": "Tek ürün Image'ında “Elapsed tick ve kayıp ayrı rapor” kabulünü koştur. scripts/os-acceptance/clock.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Atlanan periyot başarı diye silinmez",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_missed"
      },
      "dependencies": [
        "K954"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Gecikmiş IRQ teslimi",
      "counterexample": "Bir teslim iki tick sayılır",
      "guestAcceptance": "Elapsed tick ve kayıp ayrı rapor",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_missed_positive",
        "negativeName": "os_clock_missed_negative",
        "expectedMarker": "TURKOS/OS/K955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Elapsed tick ve kayıp ayrı rapor; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir teslim iki tick sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k955"
    },
    {
      "id": "K956",
      "number": 956,
      "phase": 4,
      "module": "clock",
      "feature": "clock.cancel",
      "stage": "contract",
      "title": "Timer iptal ve nesil · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İptal edilmiş nesil callback alamaz.",
      "action": "“Timer iptal ve nesil” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İptal edilmiş nesil callback alamaz. “İptal sonra aynı slot yeniden kurulur” kabulü ile “Eski expiry yeni timerı tetikler” reddini aynı sözleşmeye bağla.",
      "invariant": "İptal edilmiş nesil callback alamaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_cancel"
      },
      "dependencies": [
        "K955"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İptal sonra aynı slot yeniden kurulur",
      "counterexample": "Eski expiry yeni timerı tetikler",
      "guestAcceptance": "Yeni timer yalnız kendi deadlineında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_cancel_positive",
        "negativeName": "os_clock_cancel_negative",
        "expectedMarker": "TURKOS/OS/K960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İptal edilmiş nesil callback alamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski expiry yeni timerı tetikler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k956"
    },
    {
      "id": "K957",
      "number": 957,
      "phase": 4,
      "module": "clock",
      "feature": "clock.cancel",
      "stage": "implementation",
      "title": "Timer iptal ve nesil · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İptal edilmiş nesil callback alamaz.",
      "action": "kernel/src/runtime/clock.rs hedefinde os_clock_cancel yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/irq.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İptal edilmiş nesil callback alamaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_cancel"
      },
      "dependencies": [
        "K956"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İptal sonra aynı slot yeniden kurulur",
      "counterexample": "Eski expiry yeni timerı tetikler",
      "guestAcceptance": "Yeni timer yalnız kendi deadlineında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_cancel_positive",
        "negativeName": "os_clock_cancel_negative",
        "expectedMarker": "TURKOS/OS/K960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İptal sonra aynı slot yeniden kurulur ile Eski expiry yeni timerı tetikler ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski expiry yeni timerı tetikler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k957"
    },
    {
      "id": "K958",
      "number": 958,
      "phase": 4,
      "module": "clock",
      "feature": "clock.cancel",
      "stage": "positive",
      "title": "Timer iptal ve nesil · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İptal edilmiş nesil callback alamaz.",
      "action": "os_clock_cancel_positive testini oluştur: “İptal sonra aynı slot yeniden kurulur”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İptal edilmiş nesil callback alamaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_cancel"
      },
      "dependencies": [
        "K957"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İptal sonra aynı slot yeniden kurulur",
      "counterexample": "Eski expiry yeni timerı tetikler",
      "guestAcceptance": "Yeni timer yalnız kendi deadlineında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_cancel_positive",
        "negativeName": "os_clock_cancel_negative",
        "expectedMarker": "TURKOS/OS/K960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İptal sonra aynı slot yeniden kurulur girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski expiry yeni timerı tetikler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k958"
    },
    {
      "id": "K959",
      "number": 959,
      "phase": 4,
      "module": "clock",
      "feature": "clock.cancel",
      "stage": "negative",
      "title": "Timer iptal ve nesil · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İptal edilmiş nesil callback alamaz.",
      "action": "os_clock_cancel_negative testini oluştur: “Eski expiry yeni timerı tetikler”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İptal edilmiş nesil callback alamaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_cancel"
      },
      "dependencies": [
        "K958"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İptal sonra aynı slot yeniden kurulur",
      "counterexample": "Eski expiry yeni timerı tetikler",
      "guestAcceptance": "Yeni timer yalnız kendi deadlineında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_cancel_positive",
        "negativeName": "os_clock_cancel_negative",
        "expectedMarker": "TURKOS/OS/K960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski expiry yeni timerı tetikler karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski expiry yeni timerı tetikler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k959"
    },
    {
      "id": "K960",
      "number": 960,
      "phase": 4,
      "module": "clock",
      "feature": "clock.cancel",
      "stage": "integration",
      "title": "Timer iptal ve nesil · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: İptal edilmiş nesil callback alamaz.",
      "action": "Tek ürün Image'ında “Yeni timer yalnız kendi deadlineında” kabulünü koştur. scripts/os-acceptance/clock.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İptal edilmiş nesil callback alamaz",
      "source": {
        "target": "kernel/src/runtime/clock.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/irq.rs",
        "existingReferenceSha256": "148b0b8ffc9566db5824c8d16da7d611661d55e7060d3f806698f7deaa8014da",
        "symbol": "os_clock_cancel"
      },
      "dependencies": [
        "K959"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İptal sonra aynı slot yeniden kurulur",
      "counterexample": "Eski expiry yeni timerı tetikler",
      "guestAcceptance": "Yeni timer yalnız kendi deadlineında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/clock.rs",
        "harness": "scripts/os-acceptance/clock.mjs",
        "positiveName": "os_clock_cancel_positive",
        "negativeName": "os_clock_cancel_negative",
        "expectedMarker": "TURKOS/OS/K960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni timer yalnız kendi deadlineında; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski expiry yeni timerı tetikler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k960"
    },
    {
      "id": "K961",
      "number": 961,
      "phase": 4,
      "module": "locking",
      "feature": "locking.irq_guard",
      "stage": "contract",
      "title": "IRQ save restore guard · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Çıkış önceki DAIF değerini geri getirir.",
      "action": "“IRQ save restore guard” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Çıkış önceki DAIF değerini geri getirir. “İç içe iki guard” kabulü ile “İkinci guard IRQyu erken açar” reddini aynı sözleşmeye bağla.",
      "invariant": "Çıkış önceki DAIF değerini geri getirir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_irq_guard"
      },
      "dependencies": [
        "K960"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İç içe iki guard",
      "counterexample": "İkinci guard IRQyu erken açar",
      "guestAcceptance": "Dış guard bitene kadar IRQ maskeli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_irq_guard_positive",
        "negativeName": "os_locking_irq_guard_negative",
        "expectedMarker": "TURKOS/OS/K965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Çıkış önceki DAIF değerini geri getirir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İkinci guard IRQyu erken açar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k961"
    },
    {
      "id": "K962",
      "number": 962,
      "phase": 4,
      "module": "locking",
      "feature": "locking.irq_guard",
      "stage": "implementation",
      "title": "IRQ save restore guard · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Çıkış önceki DAIF değerini geri getirir.",
      "action": "kernel/src/runtime/locking.rs hedefinde os_locking_irq_guard yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Çıkış önceki DAIF değerini geri getirir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_irq_guard"
      },
      "dependencies": [
        "K961"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İç içe iki guard",
      "counterexample": "İkinci guard IRQyu erken açar",
      "guestAcceptance": "Dış guard bitene kadar IRQ maskeli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_irq_guard_positive",
        "negativeName": "os_locking_irq_guard_negative",
        "expectedMarker": "TURKOS/OS/K965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İç içe iki guard ile İkinci guard IRQyu erken açar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İkinci guard IRQyu erken açar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k962"
    },
    {
      "id": "K963",
      "number": 963,
      "phase": 4,
      "module": "locking",
      "feature": "locking.irq_guard",
      "stage": "positive",
      "title": "IRQ save restore guard · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Çıkış önceki DAIF değerini geri getirir.",
      "action": "os_locking_irq_guard_positive testini oluştur: “İç içe iki guard”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Çıkış önceki DAIF değerini geri getirir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_irq_guard"
      },
      "dependencies": [
        "K962"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İç içe iki guard",
      "counterexample": "İkinci guard IRQyu erken açar",
      "guestAcceptance": "Dış guard bitene kadar IRQ maskeli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_irq_guard_positive",
        "negativeName": "os_locking_irq_guard_negative",
        "expectedMarker": "TURKOS/OS/K965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İç içe iki guard girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İkinci guard IRQyu erken açar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k963"
    },
    {
      "id": "K964",
      "number": 964,
      "phase": 4,
      "module": "locking",
      "feature": "locking.irq_guard",
      "stage": "negative",
      "title": "IRQ save restore guard · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Çıkış önceki DAIF değerini geri getirir.",
      "action": "os_locking_irq_guard_negative testini oluştur: “İkinci guard IRQyu erken açar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Çıkış önceki DAIF değerini geri getirir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_irq_guard"
      },
      "dependencies": [
        "K963"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İç içe iki guard",
      "counterexample": "İkinci guard IRQyu erken açar",
      "guestAcceptance": "Dış guard bitene kadar IRQ maskeli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_irq_guard_positive",
        "negativeName": "os_locking_irq_guard_negative",
        "expectedMarker": "TURKOS/OS/K965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İkinci guard IRQyu erken açar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İkinci guard IRQyu erken açar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k964"
    },
    {
      "id": "K965",
      "number": 965,
      "phase": 4,
      "module": "locking",
      "feature": "locking.irq_guard",
      "stage": "integration",
      "title": "IRQ save restore guard · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Çıkış önceki DAIF değerini geri getirir.",
      "action": "Tek ürün Image'ında “Dış guard bitene kadar IRQ maskeli” kabulünü koştur. scripts/os-acceptance/locking.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Çıkış önceki DAIF değerini geri getirir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_irq_guard"
      },
      "dependencies": [
        "K964"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İç içe iki guard",
      "counterexample": "İkinci guard IRQyu erken açar",
      "guestAcceptance": "Dış guard bitene kadar IRQ maskeli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_irq_guard_positive",
        "negativeName": "os_locking_irq_guard_negative",
        "expectedMarker": "TURKOS/OS/K965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dış guard bitene kadar IRQ maskeli; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İkinci guard IRQyu erken açar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k965"
    },
    {
      "id": "K966",
      "number": 966,
      "phase": 4,
      "module": "locking",
      "feature": "locking.spin",
      "stage": "contract",
      "title": "Sahipli spin kilidi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kilit sahibinde uyuma ve recursion yasaktır.",
      "action": "“Sahipli spin kilidi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kilit sahibinde uyuma ve recursion yasaktır. “İki gerçek CPU talebi” kabulü ile “Aynı CPU yeniden lock ister” reddini aynı sözleşmeye bağla.",
      "invariant": "Kilit sahibinde uyuma ve recursion yasaktır",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_spin"
      },
      "dependencies": [
        "K965"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki gerçek CPU talebi",
      "counterexample": "Aynı CPU yeniden lock ister",
      "guestAcceptance": "Deadlock yerine açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_spin_positive",
        "negativeName": "os_locking_spin_negative",
        "expectedMarker": "TURKOS/OS/K970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kilit sahibinde uyuma ve recursion yasaktır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Aynı CPU yeniden lock ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k966"
    },
    {
      "id": "K967",
      "number": 967,
      "phase": 4,
      "module": "locking",
      "feature": "locking.spin",
      "stage": "implementation",
      "title": "Sahipli spin kilidi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kilit sahibinde uyuma ve recursion yasaktır.",
      "action": "kernel/src/runtime/locking.rs hedefinde os_locking_spin yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kilit sahibinde uyuma ve recursion yasaktır",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_spin"
      },
      "dependencies": [
        "K966"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki gerçek CPU talebi",
      "counterexample": "Aynı CPU yeniden lock ister",
      "guestAcceptance": "Deadlock yerine açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_spin_positive",
        "negativeName": "os_locking_spin_negative",
        "expectedMarker": "TURKOS/OS/K970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki gerçek CPU talebi ile Aynı CPU yeniden lock ister ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Aynı CPU yeniden lock ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k967"
    },
    {
      "id": "K968",
      "number": 968,
      "phase": 4,
      "module": "locking",
      "feature": "locking.spin",
      "stage": "positive",
      "title": "Sahipli spin kilidi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kilit sahibinde uyuma ve recursion yasaktır.",
      "action": "os_locking_spin_positive testini oluştur: “İki gerçek CPU talebi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kilit sahibinde uyuma ve recursion yasaktır",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_spin"
      },
      "dependencies": [
        "K967"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki gerçek CPU talebi",
      "counterexample": "Aynı CPU yeniden lock ister",
      "guestAcceptance": "Deadlock yerine açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_spin_positive",
        "negativeName": "os_locking_spin_negative",
        "expectedMarker": "TURKOS/OS/K970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki gerçek CPU talebi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Aynı CPU yeniden lock ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k968"
    },
    {
      "id": "K969",
      "number": 969,
      "phase": 4,
      "module": "locking",
      "feature": "locking.spin",
      "stage": "negative",
      "title": "Sahipli spin kilidi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kilit sahibinde uyuma ve recursion yasaktır.",
      "action": "os_locking_spin_negative testini oluştur: “Aynı CPU yeniden lock ister”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kilit sahibinde uyuma ve recursion yasaktır",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_spin"
      },
      "dependencies": [
        "K968"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki gerçek CPU talebi",
      "counterexample": "Aynı CPU yeniden lock ister",
      "guestAcceptance": "Deadlock yerine açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_spin_positive",
        "negativeName": "os_locking_spin_negative",
        "expectedMarker": "TURKOS/OS/K970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aynı CPU yeniden lock ister karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Aynı CPU yeniden lock ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k969"
    },
    {
      "id": "K970",
      "number": 970,
      "phase": 4,
      "module": "locking",
      "feature": "locking.spin",
      "stage": "integration",
      "title": "Sahipli spin kilidi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kilit sahibinde uyuma ve recursion yasaktır.",
      "action": "Tek ürün Image'ında “Deadlock yerine açık tanı” kabulünü koştur. scripts/os-acceptance/locking.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kilit sahibinde uyuma ve recursion yasaktır",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_spin"
      },
      "dependencies": [
        "K969"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki gerçek CPU talebi",
      "counterexample": "Aynı CPU yeniden lock ister",
      "guestAcceptance": "Deadlock yerine açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_spin_positive",
        "negativeName": "os_locking_spin_negative",
        "expectedMarker": "TURKOS/OS/K970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Deadlock yerine açık tanı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Aynı CPU yeniden lock ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k970"
    },
    {
      "id": "K971",
      "number": 971,
      "phase": 4,
      "module": "locking",
      "feature": "locking.mutex",
      "stage": "contract",
      "title": "Uyuyabilen kernel mutex · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Mutex yalnız task bağlamında bekler.",
      "action": "“Uyuyabilen kernel mutex” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Mutex yalnız task bağlamında bekler. “İki görev tek kaynak” kabulü ile “IRQ handler mutex bekler” reddini aynı sözleşmeye bağla.",
      "invariant": "Mutex yalnız task bağlamında bekler",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_mutex"
      },
      "dependencies": [
        "K970"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki görev tek kaynak",
      "counterexample": "IRQ handler mutex bekler",
      "guestAcceptance": "IRQ açık hata task adil devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_mutex_positive",
        "negativeName": "os_locking_mutex_negative",
        "expectedMarker": "TURKOS/OS/K975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Mutex yalnız task bağlamında bekler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“IRQ handler mutex bekler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k971"
    },
    {
      "id": "K972",
      "number": 972,
      "phase": 4,
      "module": "locking",
      "feature": "locking.mutex",
      "stage": "implementation",
      "title": "Uyuyabilen kernel mutex · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Mutex yalnız task bağlamında bekler.",
      "action": "kernel/src/runtime/locking.rs hedefinde os_locking_mutex yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Mutex yalnız task bağlamında bekler",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_mutex"
      },
      "dependencies": [
        "K971"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki görev tek kaynak",
      "counterexample": "IRQ handler mutex bekler",
      "guestAcceptance": "IRQ açık hata task adil devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_mutex_positive",
        "negativeName": "os_locking_mutex_negative",
        "expectedMarker": "TURKOS/OS/K975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki görev tek kaynak ile IRQ handler mutex bekler ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“IRQ handler mutex bekler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k972"
    },
    {
      "id": "K973",
      "number": 973,
      "phase": 4,
      "module": "locking",
      "feature": "locking.mutex",
      "stage": "positive",
      "title": "Uyuyabilen kernel mutex · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Mutex yalnız task bağlamında bekler.",
      "action": "os_locking_mutex_positive testini oluştur: “İki görev tek kaynak”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Mutex yalnız task bağlamında bekler",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_mutex"
      },
      "dependencies": [
        "K972"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki görev tek kaynak",
      "counterexample": "IRQ handler mutex bekler",
      "guestAcceptance": "IRQ açık hata task adil devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_mutex_positive",
        "negativeName": "os_locking_mutex_negative",
        "expectedMarker": "TURKOS/OS/K975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki görev tek kaynak girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“IRQ handler mutex bekler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k973"
    },
    {
      "id": "K974",
      "number": 974,
      "phase": 4,
      "module": "locking",
      "feature": "locking.mutex",
      "stage": "negative",
      "title": "Uyuyabilen kernel mutex · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Mutex yalnız task bağlamında bekler.",
      "action": "os_locking_mutex_negative testini oluştur: “IRQ handler mutex bekler”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Mutex yalnız task bağlamında bekler",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_mutex"
      },
      "dependencies": [
        "K973"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki görev tek kaynak",
      "counterexample": "IRQ handler mutex bekler",
      "guestAcceptance": "IRQ açık hata task adil devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_mutex_positive",
        "negativeName": "os_locking_mutex_negative",
        "expectedMarker": "TURKOS/OS/K975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "IRQ handler mutex bekler karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“IRQ handler mutex bekler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k974"
    },
    {
      "id": "K975",
      "number": 975,
      "phase": 4,
      "module": "locking",
      "feature": "locking.mutex",
      "stage": "integration",
      "title": "Uyuyabilen kernel mutex · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Mutex yalnız task bağlamında bekler.",
      "action": "Tek ürün Image'ında “IRQ açık hata task adil devam” kabulünü koştur. scripts/os-acceptance/locking.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Mutex yalnız task bağlamında bekler",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_mutex"
      },
      "dependencies": [
        "K974"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "İki görev tek kaynak",
      "counterexample": "IRQ handler mutex bekler",
      "guestAcceptance": "IRQ açık hata task adil devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_mutex_positive",
        "negativeName": "os_locking_mutex_negative",
        "expectedMarker": "TURKOS/OS/K975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "IRQ açık hata task adil devam; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“IRQ handler mutex bekler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k975"
    },
    {
      "id": "K976",
      "number": 976,
      "phase": 4,
      "module": "locking",
      "feature": "locking.ordering",
      "stage": "contract",
      "title": "Kilit sırası grafiği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Döngüsel edinim debug kapıda reddedilir.",
      "action": "“Kilit sırası grafiği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Döngüsel edinim debug kapıda reddedilir. “Memory sonra process” kabulü ile “Process sonra memory inversion” reddini aynı sözleşmeye bağla.",
      "invariant": "Döngüsel edinim debug kapıda reddedilir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_ordering"
      },
      "dependencies": [
        "K975"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Memory sonra process",
      "counterexample": "Process sonra memory inversion",
      "guestAcceptance": "Tanı kilit kimliklerini kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_ordering_positive",
        "negativeName": "os_locking_ordering_negative",
        "expectedMarker": "TURKOS/OS/K980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Döngüsel edinim debug kapıda reddedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Process sonra memory inversion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k976"
    },
    {
      "id": "K977",
      "number": 977,
      "phase": 4,
      "module": "locking",
      "feature": "locking.ordering",
      "stage": "implementation",
      "title": "Kilit sırası grafiği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Döngüsel edinim debug kapıda reddedilir.",
      "action": "kernel/src/runtime/locking.rs hedefinde os_locking_ordering yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/memory.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Döngüsel edinim debug kapıda reddedilir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_ordering"
      },
      "dependencies": [
        "K976"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Memory sonra process",
      "counterexample": "Process sonra memory inversion",
      "guestAcceptance": "Tanı kilit kimliklerini kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_ordering_positive",
        "negativeName": "os_locking_ordering_negative",
        "expectedMarker": "TURKOS/OS/K980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Memory sonra process ile Process sonra memory inversion ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Process sonra memory inversion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k977"
    },
    {
      "id": "K978",
      "number": 978,
      "phase": 4,
      "module": "locking",
      "feature": "locking.ordering",
      "stage": "positive",
      "title": "Kilit sırası grafiği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Döngüsel edinim debug kapıda reddedilir.",
      "action": "os_locking_ordering_positive testini oluştur: “Memory sonra process”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Döngüsel edinim debug kapıda reddedilir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_ordering"
      },
      "dependencies": [
        "K977"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Memory sonra process",
      "counterexample": "Process sonra memory inversion",
      "guestAcceptance": "Tanı kilit kimliklerini kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_ordering_positive",
        "negativeName": "os_locking_ordering_negative",
        "expectedMarker": "TURKOS/OS/K980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Memory sonra process girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Process sonra memory inversion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k978"
    },
    {
      "id": "K979",
      "number": 979,
      "phase": 4,
      "module": "locking",
      "feature": "locking.ordering",
      "stage": "negative",
      "title": "Kilit sırası grafiği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Döngüsel edinim debug kapıda reddedilir.",
      "action": "os_locking_ordering_negative testini oluştur: “Process sonra memory inversion”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Döngüsel edinim debug kapıda reddedilir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_ordering"
      },
      "dependencies": [
        "K978"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Memory sonra process",
      "counterexample": "Process sonra memory inversion",
      "guestAcceptance": "Tanı kilit kimliklerini kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_ordering_positive",
        "negativeName": "os_locking_ordering_negative",
        "expectedMarker": "TURKOS/OS/K980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Process sonra memory inversion karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Process sonra memory inversion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k979"
    },
    {
      "id": "K980",
      "number": 980,
      "phase": 4,
      "module": "locking",
      "feature": "locking.ordering",
      "stage": "integration",
      "title": "Kilit sırası grafiği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Döngüsel edinim debug kapıda reddedilir.",
      "action": "Tek ürün Image'ında “Tanı kilit kimliklerini kaydeder” kabulünü koştur. scripts/os-acceptance/locking.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Döngüsel edinim debug kapıda reddedilir",
      "source": {
        "target": "kernel/src/runtime/locking.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/memory.rs",
        "existingReferenceSha256": "6a1417e95b7dd54ec14ee2d6bf6f96635f3b15bd9de207afe68c37b0ba631c09",
        "symbol": "os_locking_ordering"
      },
      "dependencies": [
        "K979"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Memory sonra process",
      "counterexample": "Process sonra memory inversion",
      "guestAcceptance": "Tanı kilit kimliklerini kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/locking.rs",
        "harness": "scripts/os-acceptance/locking.mjs",
        "positiveName": "os_locking_ordering_positive",
        "negativeName": "os_locking_ordering_negative",
        "expectedMarker": "TURKOS/OS/K980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tanı kilit kimliklerini kaydeder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Process sonra memory inversion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k980"
    },
    {
      "id": "K981",
      "number": 981,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.queue",
      "stage": "contract",
      "title": "Sabit deferred iş kuyruğu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kuyruk doluluğu açık muhasebedir.",
      "action": "“Sabit deferred iş kuyruğu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kuyruk doluluğu açık muhasebedir. “Sekiz iş ve tüketim” kabulü ile “Dokuzuncu iş” reddini aynı sözleşmeye bağla.",
      "invariant": "Kuyruk doluluğu açık muhasebedir",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_queue"
      },
      "dependencies": [
        "K980"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Sekiz iş ve tüketim",
      "counterexample": "Dokuzuncu iş",
      "guestAcceptance": "Kaybı sayılır diğer işler korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_queue_positive",
        "negativeName": "os_deferred_work_queue_negative",
        "expectedMarker": "TURKOS/OS/K985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kuyruk doluluğu açık muhasebedir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Dokuzuncu iş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k981"
    },
    {
      "id": "K982",
      "number": 982,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.queue",
      "stage": "implementation",
      "title": "Sabit deferred iş kuyruğu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kuyruk doluluğu açık muhasebedir.",
      "action": "kernel/src/runtime/deferred_work.rs hedefinde os_deferred_work_queue yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kuyruk doluluğu açık muhasebedir",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_queue"
      },
      "dependencies": [
        "K981"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Sekiz iş ve tüketim",
      "counterexample": "Dokuzuncu iş",
      "guestAcceptance": "Kaybı sayılır diğer işler korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_queue_positive",
        "negativeName": "os_deferred_work_queue_negative",
        "expectedMarker": "TURKOS/OS/K985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Sekiz iş ve tüketim ile Dokuzuncu iş ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Dokuzuncu iş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k982"
    },
    {
      "id": "K983",
      "number": 983,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.queue",
      "stage": "positive",
      "title": "Sabit deferred iş kuyruğu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kuyruk doluluğu açık muhasebedir.",
      "action": "os_deferred_work_queue_positive testini oluştur: “Sekiz iş ve tüketim”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kuyruk doluluğu açık muhasebedir",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_queue"
      },
      "dependencies": [
        "K982"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Sekiz iş ve tüketim",
      "counterexample": "Dokuzuncu iş",
      "guestAcceptance": "Kaybı sayılır diğer işler korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_queue_positive",
        "negativeName": "os_deferred_work_queue_negative",
        "expectedMarker": "TURKOS/OS/K985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Sekiz iş ve tüketim girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Dokuzuncu iş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k983"
    },
    {
      "id": "K984",
      "number": 984,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.queue",
      "stage": "negative",
      "title": "Sabit deferred iş kuyruğu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kuyruk doluluğu açık muhasebedir.",
      "action": "os_deferred_work_queue_negative testini oluştur: “Dokuzuncu iş”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kuyruk doluluğu açık muhasebedir",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_queue"
      },
      "dependencies": [
        "K983"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Sekiz iş ve tüketim",
      "counterexample": "Dokuzuncu iş",
      "guestAcceptance": "Kaybı sayılır diğer işler korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_queue_positive",
        "negativeName": "os_deferred_work_queue_negative",
        "expectedMarker": "TURKOS/OS/K985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dokuzuncu iş karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Dokuzuncu iş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k984"
    },
    {
      "id": "K985",
      "number": 985,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.queue",
      "stage": "integration",
      "title": "Sabit deferred iş kuyruğu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Kuyruk doluluğu açık muhasebedir.",
      "action": "Tek ürün Image'ında “Kaybı sayılır diğer işler korunur” kabulünü koştur. scripts/os-acceptance/deferred_work.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kuyruk doluluğu açık muhasebedir",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_queue"
      },
      "dependencies": [
        "K984"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Sekiz iş ve tüketim",
      "counterexample": "Dokuzuncu iş",
      "guestAcceptance": "Kaybı sayılır diğer işler korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_queue_positive",
        "negativeName": "os_deferred_work_queue_negative",
        "expectedMarker": "TURKOS/OS/K985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kaybı sayılır diğer işler korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Dokuzuncu iş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k985"
    },
    {
      "id": "K986",
      "number": 986,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.context",
      "stage": "contract",
      "title": "Üst yarı alt yarı ayrımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: IRQ handler heap veya disk beklemez.",
      "action": "“Üst yarı alt yarı ayrımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: IRQ handler heap veya disk beklemez. “Completion alt yarıya taşınır” kabulü ile “IRQ içinde blok I/O” reddini aynı sözleşmeye bağla.",
      "invariant": "IRQ handler heap veya disk beklemez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_context"
      },
      "dependencies": [
        "K985"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Completion alt yarıya taşınır",
      "counterexample": "IRQ içinde blok I/O",
      "guestAcceptance": "Aygıt hizmeti task içinde tamamlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_context_positive",
        "negativeName": "os_deferred_work_context_negative",
        "expectedMarker": "TURKOS/OS/K990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu IRQ handler heap veya disk beklemez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“IRQ içinde blok I/O” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k986"
    },
    {
      "id": "K987",
      "number": 987,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.context",
      "stage": "implementation",
      "title": "Üst yarı alt yarı ayrımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: IRQ handler heap veya disk beklemez.",
      "action": "kernel/src/runtime/deferred_work.rs hedefinde os_deferred_work_context yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "IRQ handler heap veya disk beklemez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_context"
      },
      "dependencies": [
        "K986"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Completion alt yarıya taşınır",
      "counterexample": "IRQ içinde blok I/O",
      "guestAcceptance": "Aygıt hizmeti task içinde tamamlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_context_positive",
        "negativeName": "os_deferred_work_context_negative",
        "expectedMarker": "TURKOS/OS/K990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Completion alt yarıya taşınır ile IRQ içinde blok I/O ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“IRQ içinde blok I/O” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k987"
    },
    {
      "id": "K988",
      "number": 988,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.context",
      "stage": "positive",
      "title": "Üst yarı alt yarı ayrımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: IRQ handler heap veya disk beklemez.",
      "action": "os_deferred_work_context_positive testini oluştur: “Completion alt yarıya taşınır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "IRQ handler heap veya disk beklemez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_context"
      },
      "dependencies": [
        "K987"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Completion alt yarıya taşınır",
      "counterexample": "IRQ içinde blok I/O",
      "guestAcceptance": "Aygıt hizmeti task içinde tamamlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_context_positive",
        "negativeName": "os_deferred_work_context_negative",
        "expectedMarker": "TURKOS/OS/K990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Completion alt yarıya taşınır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“IRQ içinde blok I/O” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k988"
    },
    {
      "id": "K989",
      "number": 989,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.context",
      "stage": "negative",
      "title": "Üst yarı alt yarı ayrımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: IRQ handler heap veya disk beklemez.",
      "action": "os_deferred_work_context_negative testini oluştur: “IRQ içinde blok I/O”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "IRQ handler heap veya disk beklemez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_context"
      },
      "dependencies": [
        "K988"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Completion alt yarıya taşınır",
      "counterexample": "IRQ içinde blok I/O",
      "guestAcceptance": "Aygıt hizmeti task içinde tamamlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_context_positive",
        "negativeName": "os_deferred_work_context_negative",
        "expectedMarker": "TURKOS/OS/K990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "IRQ içinde blok I/O karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“IRQ içinde blok I/O” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k989"
    },
    {
      "id": "K990",
      "number": 990,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.context",
      "stage": "integration",
      "title": "Üst yarı alt yarı ayrımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: IRQ handler heap veya disk beklemez.",
      "action": "Tek ürün Image'ında “Aygıt hizmeti task içinde tamamlanır” kabulünü koştur. scripts/os-acceptance/deferred_work.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "IRQ handler heap veya disk beklemez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_context"
      },
      "dependencies": [
        "K989"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Completion alt yarıya taşınır",
      "counterexample": "IRQ içinde blok I/O",
      "guestAcceptance": "Aygıt hizmeti task içinde tamamlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_context_positive",
        "negativeName": "os_deferred_work_context_negative",
        "expectedMarker": "TURKOS/OS/K990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aygıt hizmeti task içinde tamamlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“IRQ içinde blok I/O” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k990"
    },
    {
      "id": "K991",
      "number": 991,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.coalesce",
      "stage": "contract",
      "title": "Tekrarlanan iş birleştirme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Birleştirme farklı nesli düşürmez.",
      "action": "“Tekrarlanan iş birleştirme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Birleştirme farklı nesli düşürmez. “Aynı aygıt üç completion” kabulü ile “Yeni nesil eski işle birleşir” reddini aynı sözleşmeye bağla.",
      "invariant": "Birleştirme farklı nesli düşürmez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_coalesce"
      },
      "dependencies": [
        "K990"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aynı aygıt üç completion",
      "counterexample": "Yeni nesil eski işle birleşir",
      "guestAcceptance": "Her neslin completion hesabı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_coalesce_positive",
        "negativeName": "os_deferred_work_coalesce_negative",
        "expectedMarker": "TURKOS/OS/K995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Birleştirme farklı nesli düşürmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yeni nesil eski işle birleşir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k991"
    },
    {
      "id": "K992",
      "number": 992,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.coalesce",
      "stage": "implementation",
      "title": "Tekrarlanan iş birleştirme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Birleştirme farklı nesli düşürmez.",
      "action": "kernel/src/runtime/deferred_work.rs hedefinde os_deferred_work_coalesce yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Birleştirme farklı nesli düşürmez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_coalesce"
      },
      "dependencies": [
        "K991"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aynı aygıt üç completion",
      "counterexample": "Yeni nesil eski işle birleşir",
      "guestAcceptance": "Her neslin completion hesabı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_coalesce_positive",
        "negativeName": "os_deferred_work_coalesce_negative",
        "expectedMarker": "TURKOS/OS/K995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı aygıt üç completion ile Yeni nesil eski işle birleşir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yeni nesil eski işle birleşir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k992"
    },
    {
      "id": "K993",
      "number": 993,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.coalesce",
      "stage": "positive",
      "title": "Tekrarlanan iş birleştirme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Birleştirme farklı nesli düşürmez.",
      "action": "os_deferred_work_coalesce_positive testini oluştur: “Aynı aygıt üç completion”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Birleştirme farklı nesli düşürmez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_coalesce"
      },
      "dependencies": [
        "K992"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aynı aygıt üç completion",
      "counterexample": "Yeni nesil eski işle birleşir",
      "guestAcceptance": "Her neslin completion hesabı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_coalesce_positive",
        "negativeName": "os_deferred_work_coalesce_negative",
        "expectedMarker": "TURKOS/OS/K995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı aygıt üç completion girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yeni nesil eski işle birleşir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k993"
    },
    {
      "id": "K994",
      "number": 994,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.coalesce",
      "stage": "negative",
      "title": "Tekrarlanan iş birleştirme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Birleştirme farklı nesli düşürmez.",
      "action": "os_deferred_work_coalesce_negative testini oluştur: “Yeni nesil eski işle birleşir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Birleştirme farklı nesli düşürmez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_coalesce"
      },
      "dependencies": [
        "K993"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aynı aygıt üç completion",
      "counterexample": "Yeni nesil eski işle birleşir",
      "guestAcceptance": "Her neslin completion hesabı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_coalesce_positive",
        "negativeName": "os_deferred_work_coalesce_negative",
        "expectedMarker": "TURKOS/OS/K995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni nesil eski işle birleşir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yeni nesil eski işle birleşir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k994"
    },
    {
      "id": "K995",
      "number": 995,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.coalesce",
      "stage": "integration",
      "title": "Tekrarlanan iş birleştirme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Birleştirme farklı nesli düşürmez.",
      "action": "Tek ürün Image'ında “Her neslin completion hesabı doğru” kabulünü koştur. scripts/os-acceptance/deferred_work.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Birleştirme farklı nesli düşürmez",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_coalesce"
      },
      "dependencies": [
        "K994"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Aynı aygıt üç completion",
      "counterexample": "Yeni nesil eski işle birleşir",
      "guestAcceptance": "Her neslin completion hesabı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_coalesce_positive",
        "negativeName": "os_deferred_work_coalesce_negative",
        "expectedMarker": "TURKOS/OS/K995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her neslin completion hesabı doğru; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yeni nesil eski işle birleşir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k995"
    },
    {
      "id": "K996",
      "number": 996,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.drain",
      "stage": "contract",
      "title": "Hizmet kapatma ve drain · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sökülen hizmete yeni iş alınmaz.",
      "action": "“Hizmet kapatma ve drain” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Sökülen hizmete yeni iş alınmaz. “Drain sonra callback silinir” kabulü ile “Draining hizmete yeni job” reddini aynı sözleşmeye bağla.",
      "invariant": "Sökülen hizmete yeni iş alınmaz",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_drain"
      },
      "dependencies": [
        "K995"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Drain sonra callback silinir",
      "counterexample": "Draining hizmete yeni job",
      "guestAcceptance": "Son iş bitmeden kaynak iadesi yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_drain_positive",
        "negativeName": "os_deferred_work_drain_negative",
        "expectedMarker": "TURKOS/OS/K1000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Sökülen hizmete yeni iş alınmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Draining hizmete yeni job” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k996"
    },
    {
      "id": "K997",
      "number": 997,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.drain",
      "stage": "implementation",
      "title": "Hizmet kapatma ve drain · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sökülen hizmete yeni iş alınmaz.",
      "action": "kernel/src/runtime/deferred_work.rs hedefinde os_deferred_work_drain yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Sökülen hizmete yeni iş alınmaz",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_drain"
      },
      "dependencies": [
        "K996"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Drain sonra callback silinir",
      "counterexample": "Draining hizmete yeni job",
      "guestAcceptance": "Son iş bitmeden kaynak iadesi yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_drain_positive",
        "negativeName": "os_deferred_work_drain_negative",
        "expectedMarker": "TURKOS/OS/K1000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Drain sonra callback silinir ile Draining hizmete yeni job ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Draining hizmete yeni job” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k997"
    },
    {
      "id": "K998",
      "number": 998,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.drain",
      "stage": "positive",
      "title": "Hizmet kapatma ve drain · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sökülen hizmete yeni iş alınmaz.",
      "action": "os_deferred_work_drain_positive testini oluştur: “Drain sonra callback silinir”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Sökülen hizmete yeni iş alınmaz",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_drain"
      },
      "dependencies": [
        "K997"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Drain sonra callback silinir",
      "counterexample": "Draining hizmete yeni job",
      "guestAcceptance": "Son iş bitmeden kaynak iadesi yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_drain_positive",
        "negativeName": "os_deferred_work_drain_negative",
        "expectedMarker": "TURKOS/OS/K1000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Drain sonra callback silinir girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Draining hizmete yeni job” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k998"
    },
    {
      "id": "K999",
      "number": 999,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.drain",
      "stage": "negative",
      "title": "Hizmet kapatma ve drain · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sökülen hizmete yeni iş alınmaz.",
      "action": "os_deferred_work_drain_negative testini oluştur: “Draining hizmete yeni job”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Sökülen hizmete yeni iş alınmaz",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_drain"
      },
      "dependencies": [
        "K998"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Drain sonra callback silinir",
      "counterexample": "Draining hizmete yeni job",
      "guestAcceptance": "Son iş bitmeden kaynak iadesi yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_drain_positive",
        "negativeName": "os_deferred_work_drain_negative",
        "expectedMarker": "TURKOS/OS/K1000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Draining hizmete yeni job karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Draining hizmete yeni job” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k999"
    },
    {
      "id": "K1000",
      "number": 1000,
      "phase": 4,
      "module": "deferred_work",
      "feature": "deferred_work.drain",
      "stage": "integration",
      "title": "Hizmet kapatma ve drain · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kısa IRQ probe başarısı sürekli ürün hizmeti değildir. Kesme bağlamı ile uyuyan hizmet bağlamı kesin ayrılır. Bu hamlenin koruduğu değişmez: Sökülen hizmete yeni iş alınmaz.",
      "action": "Tek ürün Image'ında “Son iş bitmeden kaynak iadesi yok” kabulünü koştur. scripts/os-acceptance/deferred_work.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Sökülen hizmete yeni iş alınmaz",
      "source": {
        "target": "kernel/src/runtime/deferred_work.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_deferred_work_drain"
      },
      "dependencies": [
        "K999"
      ],
      "phasePrerequisites": [
        3
      ],
      "positive": "Drain sonra callback silinir",
      "counterexample": "Draining hizmete yeni job",
      "guestAcceptance": "Son iş bitmeden kaynak iadesi yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/deferred_work.rs",
        "harness": "scripts/os-acceptance/deferred_work.mjs",
        "positiveName": "os_deferred_work_drain_positive",
        "negativeName": "os_deferred_work_drain_negative",
        "expectedMarker": "TURKOS/OS/K1000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son iş bitmeden kaynak iadesi yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Draining hizmete yeni job” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-04#k1000"
    },
    {
      "id": "K1001",
      "number": 1001,
      "phase": 5,
      "module": "threads",
      "feature": "threads.identity",
      "stage": "contract",
      "title": "Thread slot ve nesil · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: ThreadId slot tekrarında değişir.",
      "action": "“Thread slot ve nesil” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: ThreadId slot tekrarında değişir. “Slotu üç kez kullan” kabulü ile “Eski ThreadId wake” reddini aynı sözleşmeye bağla.",
      "invariant": "ThreadId slot tekrarında değişir",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_identity"
      },
      "dependencies": [],
      "phasePrerequisites": [
        4
      ],
      "positive": "Slotu üç kez kullan",
      "counterexample": "Eski ThreadId wake",
      "guestAcceptance": "Yeni görev etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_identity_positive",
        "negativeName": "os_threads_identity_negative",
        "expectedMarker": "TURKOS/OS/K1005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu ThreadId slot tekrarında değişir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski ThreadId wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1001"
    },
    {
      "id": "K1002",
      "number": 1002,
      "phase": 5,
      "module": "threads",
      "feature": "threads.identity",
      "stage": "implementation",
      "title": "Thread slot ve nesil · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: ThreadId slot tekrarında değişir.",
      "action": "kernel/src/runtime/threads.rs hedefinde os_threads_identity yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "ThreadId slot tekrarında değişir",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_identity"
      },
      "dependencies": [
        "K1001"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Slotu üç kez kullan",
      "counterexample": "Eski ThreadId wake",
      "guestAcceptance": "Yeni görev etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_identity_positive",
        "negativeName": "os_threads_identity_negative",
        "expectedMarker": "TURKOS/OS/K1005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Slotu üç kez kullan ile Eski ThreadId wake ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski ThreadId wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1002"
    },
    {
      "id": "K1003",
      "number": 1003,
      "phase": 5,
      "module": "threads",
      "feature": "threads.identity",
      "stage": "positive",
      "title": "Thread slot ve nesil · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: ThreadId slot tekrarında değişir.",
      "action": "os_threads_identity_positive testini oluştur: “Slotu üç kez kullan”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "ThreadId slot tekrarında değişir",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_identity"
      },
      "dependencies": [
        "K1002"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Slotu üç kez kullan",
      "counterexample": "Eski ThreadId wake",
      "guestAcceptance": "Yeni görev etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_identity_positive",
        "negativeName": "os_threads_identity_negative",
        "expectedMarker": "TURKOS/OS/K1005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Slotu üç kez kullan girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski ThreadId wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1003"
    },
    {
      "id": "K1004",
      "number": 1004,
      "phase": 5,
      "module": "threads",
      "feature": "threads.identity",
      "stage": "negative",
      "title": "Thread slot ve nesil · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: ThreadId slot tekrarında değişir.",
      "action": "os_threads_identity_negative testini oluştur: “Eski ThreadId wake”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "ThreadId slot tekrarında değişir",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_identity"
      },
      "dependencies": [
        "K1003"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Slotu üç kez kullan",
      "counterexample": "Eski ThreadId wake",
      "guestAcceptance": "Yeni görev etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_identity_positive",
        "negativeName": "os_threads_identity_negative",
        "expectedMarker": "TURKOS/OS/K1005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski ThreadId wake karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski ThreadId wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1004"
    },
    {
      "id": "K1005",
      "number": 1005,
      "phase": 5,
      "module": "threads",
      "feature": "threads.identity",
      "stage": "integration",
      "title": "Thread slot ve nesil · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: ThreadId slot tekrarında değişir.",
      "action": "Tek ürün Image'ında “Yeni görev etkilenmez” kabulünü koştur. scripts/os-acceptance/threads.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "ThreadId slot tekrarında değişir",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_identity"
      },
      "dependencies": [
        "K1004"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Slotu üç kez kullan",
      "counterexample": "Eski ThreadId wake",
      "guestAcceptance": "Yeni görev etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_identity_positive",
        "negativeName": "os_threads_identity_negative",
        "expectedMarker": "TURKOS/OS/K1005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni görev etkilenmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski ThreadId wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1005"
    },
    {
      "id": "K1006",
      "number": 1006,
      "phase": 5,
      "module": "threads",
      "feature": "threads.stacks",
      "stage": "contract",
      "title": "Thread özel kernel yığını · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Her thread guardlı ayrı backing taşır.",
      "action": "“Thread özel kernel yığını” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her thread guardlı ayrı backing taşır. “Üç thread üç stack” kabulü ile “Ortak yığın iki bağlamda” reddini aynı sözleşmeye bağla.",
      "invariant": "Her thread guardlı ayrı backing taşır",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_stacks"
      },
      "dependencies": [
        "K1005"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç thread üç stack",
      "counterexample": "Ortak yığın iki bağlamda",
      "guestAcceptance": "Guard fault yalnız tanımlı fatal yol",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_stacks_positive",
        "negativeName": "os_threads_stacks_negative",
        "expectedMarker": "TURKOS/OS/K1010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her thread guardlı ayrı backing taşır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ortak yığın iki bağlamda” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1006"
    },
    {
      "id": "K1007",
      "number": 1007,
      "phase": 5,
      "module": "threads",
      "feature": "threads.stacks",
      "stage": "implementation",
      "title": "Thread özel kernel yığını · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Her thread guardlı ayrı backing taşır.",
      "action": "kernel/src/runtime/threads.rs hedefinde os_threads_stacks yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her thread guardlı ayrı backing taşır",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_stacks"
      },
      "dependencies": [
        "K1006"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç thread üç stack",
      "counterexample": "Ortak yığın iki bağlamda",
      "guestAcceptance": "Guard fault yalnız tanımlı fatal yol",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_stacks_positive",
        "negativeName": "os_threads_stacks_negative",
        "expectedMarker": "TURKOS/OS/K1010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç thread üç stack ile Ortak yığın iki bağlamda ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ortak yığın iki bağlamda” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1007"
    },
    {
      "id": "K1008",
      "number": 1008,
      "phase": 5,
      "module": "threads",
      "feature": "threads.stacks",
      "stage": "positive",
      "title": "Thread özel kernel yığını · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Her thread guardlı ayrı backing taşır.",
      "action": "os_threads_stacks_positive testini oluştur: “Üç thread üç stack”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her thread guardlı ayrı backing taşır",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_stacks"
      },
      "dependencies": [
        "K1007"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç thread üç stack",
      "counterexample": "Ortak yığın iki bağlamda",
      "guestAcceptance": "Guard fault yalnız tanımlı fatal yol",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_stacks_positive",
        "negativeName": "os_threads_stacks_negative",
        "expectedMarker": "TURKOS/OS/K1010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç thread üç stack girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ortak yığın iki bağlamda” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1008"
    },
    {
      "id": "K1009",
      "number": 1009,
      "phase": 5,
      "module": "threads",
      "feature": "threads.stacks",
      "stage": "negative",
      "title": "Thread özel kernel yığını · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Her thread guardlı ayrı backing taşır.",
      "action": "os_threads_stacks_negative testini oluştur: “Ortak yığın iki bağlamda”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her thread guardlı ayrı backing taşır",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_stacks"
      },
      "dependencies": [
        "K1008"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç thread üç stack",
      "counterexample": "Ortak yığın iki bağlamda",
      "guestAcceptance": "Guard fault yalnız tanımlı fatal yol",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_stacks_positive",
        "negativeName": "os_threads_stacks_negative",
        "expectedMarker": "TURKOS/OS/K1010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ortak yığın iki bağlamda karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ortak yığın iki bağlamda” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1009"
    },
    {
      "id": "K1010",
      "number": 1010,
      "phase": 5,
      "module": "threads",
      "feature": "threads.stacks",
      "stage": "integration",
      "title": "Thread özel kernel yığını · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Her thread guardlı ayrı backing taşır.",
      "action": "Tek ürün Image'ında “Guard fault yalnız tanımlı fatal yol” kabulünü koştur. scripts/os-acceptance/threads.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her thread guardlı ayrı backing taşır",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_stacks"
      },
      "dependencies": [
        "K1009"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç thread üç stack",
      "counterexample": "Ortak yığın iki bağlamda",
      "guestAcceptance": "Guard fault yalnız tanımlı fatal yol",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_stacks_positive",
        "negativeName": "os_threads_stacks_negative",
        "expectedMarker": "TURKOS/OS/K1010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Guard fault yalnız tanımlı fatal yol; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ortak yığın iki bağlamda” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1010"
    },
    {
      "id": "K1011",
      "number": 1011,
      "phase": 5,
      "module": "threads",
      "feature": "threads.states",
      "stage": "contract",
      "title": "Ready Running Sleeping Dead · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Geçersiz durum geçişi yayımlanmaz.",
      "action": "“Ready Running Sleeping Dead” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Geçersiz durum geçişi yayımlanmaz. “Ready Running Sleeping Ready” kabulü ile “Dead Ready geçişi” reddini aynı sözleşmeye bağla.",
      "invariant": "Geçersiz durum geçişi yayımlanmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_states"
      },
      "dependencies": [
        "K1010"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready Running Sleeping Ready",
      "counterexample": "Dead Ready geçişi",
      "guestAcceptance": "Ölü thread runqueueda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_states_positive",
        "negativeName": "os_threads_states_negative",
        "expectedMarker": "TURKOS/OS/K1015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Geçersiz durum geçişi yayımlanmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Dead Ready geçişi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1011"
    },
    {
      "id": "K1012",
      "number": 1012,
      "phase": 5,
      "module": "threads",
      "feature": "threads.states",
      "stage": "implementation",
      "title": "Ready Running Sleeping Dead · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Geçersiz durum geçişi yayımlanmaz.",
      "action": "kernel/src/runtime/threads.rs hedefinde os_threads_states yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Geçersiz durum geçişi yayımlanmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_states"
      },
      "dependencies": [
        "K1011"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready Running Sleeping Ready",
      "counterexample": "Dead Ready geçişi",
      "guestAcceptance": "Ölü thread runqueueda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_states_positive",
        "negativeName": "os_threads_states_negative",
        "expectedMarker": "TURKOS/OS/K1015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Ready Running Sleeping Ready ile Dead Ready geçişi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Dead Ready geçişi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1012"
    },
    {
      "id": "K1013",
      "number": 1013,
      "phase": 5,
      "module": "threads",
      "feature": "threads.states",
      "stage": "positive",
      "title": "Ready Running Sleeping Dead · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Geçersiz durum geçişi yayımlanmaz.",
      "action": "os_threads_states_positive testini oluştur: “Ready Running Sleeping Ready”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Geçersiz durum geçişi yayımlanmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_states"
      },
      "dependencies": [
        "K1012"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready Running Sleeping Ready",
      "counterexample": "Dead Ready geçişi",
      "guestAcceptance": "Ölü thread runqueueda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_states_positive",
        "negativeName": "os_threads_states_negative",
        "expectedMarker": "TURKOS/OS/K1015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Ready Running Sleeping Ready girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Dead Ready geçişi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1013"
    },
    {
      "id": "K1014",
      "number": 1014,
      "phase": 5,
      "module": "threads",
      "feature": "threads.states",
      "stage": "negative",
      "title": "Ready Running Sleeping Dead · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Geçersiz durum geçişi yayımlanmaz.",
      "action": "os_threads_states_negative testini oluştur: “Dead Ready geçişi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Geçersiz durum geçişi yayımlanmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_states"
      },
      "dependencies": [
        "K1013"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready Running Sleeping Ready",
      "counterexample": "Dead Ready geçişi",
      "guestAcceptance": "Ölü thread runqueueda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_states_positive",
        "negativeName": "os_threads_states_negative",
        "expectedMarker": "TURKOS/OS/K1015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dead Ready geçişi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Dead Ready geçişi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1014"
    },
    {
      "id": "K1015",
      "number": 1015,
      "phase": 5,
      "module": "threads",
      "feature": "threads.states",
      "stage": "integration",
      "title": "Ready Running Sleeping Dead · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Geçersiz durum geçişi yayımlanmaz.",
      "action": "Tek ürün Image'ında “Ölü thread runqueueda bulunmaz” kabulünü koştur. scripts/os-acceptance/threads.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Geçersiz durum geçişi yayımlanmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_states"
      },
      "dependencies": [
        "K1014"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready Running Sleeping Ready",
      "counterexample": "Dead Ready geçişi",
      "guestAcceptance": "Ölü thread runqueueda bulunmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_states_positive",
        "negativeName": "os_threads_states_negative",
        "expectedMarker": "TURKOS/OS/K1015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ölü thread runqueueda bulunmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Dead Ready geçişi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1015"
    },
    {
      "id": "K1016",
      "number": 1016,
      "phase": 5,
      "module": "threads",
      "feature": "threads.retire",
      "stage": "contract",
      "title": "Thread sonlanma iadesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Çalışan stack üzerinde free yapılmaz.",
      "action": "“Thread sonlanma iadesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Çalışan stack üzerinde free yapılmaz. “Başka stackten reap” kabulü ile “Kendi stackini anında iade” reddini aynı sözleşmeye bağla.",
      "invariant": "Çalışan stack üzerinde free yapılmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_retire"
      },
      "dependencies": [
        "K1015"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Başka stackten reap",
      "counterexample": "Kendi stackini anında iade",
      "guestAcceptance": "Reap sonrasında kaynak sayısı başlangıç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_retire_positive",
        "negativeName": "os_threads_retire_negative",
        "expectedMarker": "TURKOS/OS/K1020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Çalışan stack üzerinde free yapılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kendi stackini anında iade” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1016"
    },
    {
      "id": "K1017",
      "number": 1017,
      "phase": 5,
      "module": "threads",
      "feature": "threads.retire",
      "stage": "implementation",
      "title": "Thread sonlanma iadesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Çalışan stack üzerinde free yapılmaz.",
      "action": "kernel/src/runtime/threads.rs hedefinde os_threads_retire yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Çalışan stack üzerinde free yapılmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_retire"
      },
      "dependencies": [
        "K1016"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Başka stackten reap",
      "counterexample": "Kendi stackini anında iade",
      "guestAcceptance": "Reap sonrasında kaynak sayısı başlangıç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_retire_positive",
        "negativeName": "os_threads_retire_negative",
        "expectedMarker": "TURKOS/OS/K1020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Başka stackten reap ile Kendi stackini anında iade ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kendi stackini anında iade” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1017"
    },
    {
      "id": "K1018",
      "number": 1018,
      "phase": 5,
      "module": "threads",
      "feature": "threads.retire",
      "stage": "positive",
      "title": "Thread sonlanma iadesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Çalışan stack üzerinde free yapılmaz.",
      "action": "os_threads_retire_positive testini oluştur: “Başka stackten reap”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Çalışan stack üzerinde free yapılmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_retire"
      },
      "dependencies": [
        "K1017"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Başka stackten reap",
      "counterexample": "Kendi stackini anında iade",
      "guestAcceptance": "Reap sonrasında kaynak sayısı başlangıç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_retire_positive",
        "negativeName": "os_threads_retire_negative",
        "expectedMarker": "TURKOS/OS/K1020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Başka stackten reap girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kendi stackini anında iade” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1018"
    },
    {
      "id": "K1019",
      "number": 1019,
      "phase": 5,
      "module": "threads",
      "feature": "threads.retire",
      "stage": "negative",
      "title": "Thread sonlanma iadesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Çalışan stack üzerinde free yapılmaz.",
      "action": "os_threads_retire_negative testini oluştur: “Kendi stackini anında iade”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Çalışan stack üzerinde free yapılmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_retire"
      },
      "dependencies": [
        "K1018"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Başka stackten reap",
      "counterexample": "Kendi stackini anında iade",
      "guestAcceptance": "Reap sonrasında kaynak sayısı başlangıç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_retire_positive",
        "negativeName": "os_threads_retire_negative",
        "expectedMarker": "TURKOS/OS/K1020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kendi stackini anında iade karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kendi stackini anında iade” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1019"
    },
    {
      "id": "K1020",
      "number": 1020,
      "phase": 5,
      "module": "threads",
      "feature": "threads.retire",
      "stage": "integration",
      "title": "Thread sonlanma iadesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Çalışan stack üzerinde free yapılmaz.",
      "action": "Tek ürün Image'ında “Reap sonrasında kaynak sayısı başlangıç” kabulünü koştur. scripts/os-acceptance/threads.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Çalışan stack üzerinde free yapılmaz",
      "source": {
        "target": "kernel/src/runtime/threads.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_threads_retire"
      },
      "dependencies": [
        "K1019"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Başka stackten reap",
      "counterexample": "Kendi stackini anında iade",
      "guestAcceptance": "Reap sonrasında kaynak sayısı başlangıç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/threads.rs",
        "harness": "scripts/os-acceptance/threads.mjs",
        "positiveName": "os_threads_retire_positive",
        "negativeName": "os_threads_retire_negative",
        "expectedMarker": "TURKOS/OS/K1020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Reap sonrasında kaynak sayısı başlangıç; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kendi stackini anında iade” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1020"
    },
    {
      "id": "K1021",
      "number": 1021,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.callee_saved",
      "stage": "contract",
      "title": "Callee saved kayıt düzeni · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Assembly ve Rust ofsetleri eşittir.",
      "action": "“Callee saved kayıt düzeni” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Assembly ve Rust ofsetleri eşittir. “x19 x29 tanık değerleri” kabulü ile “Bir ofset kaydırılmış frame” reddini aynı sözleşmeye bağla.",
      "invariant": "Assembly ve Rust ofsetleri eşittir",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_callee_saved"
      },
      "dependencies": [
        "K1020"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "x19 x29 tanık değerleri",
      "counterexample": "Bir ofset kaydırılmış frame",
      "guestAcceptance": "Bin geçişte kayıtlar aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_callee_saved_positive",
        "negativeName": "os_context_switch_callee_saved_negative",
        "expectedMarker": "TURKOS/OS/K1025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Assembly ve Rust ofsetleri eşittir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir ofset kaydırılmış frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1021"
    },
    {
      "id": "K1022",
      "number": 1022,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.callee_saved",
      "stage": "implementation",
      "title": "Callee saved kayıt düzeni · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Assembly ve Rust ofsetleri eşittir.",
      "action": "kernel/src/arch/aarch64/context_switch.rs hedefinde os_context_switch_callee_saved yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task_switch.S bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Assembly ve Rust ofsetleri eşittir",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_callee_saved"
      },
      "dependencies": [
        "K1021"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "x19 x29 tanık değerleri",
      "counterexample": "Bir ofset kaydırılmış frame",
      "guestAcceptance": "Bin geçişte kayıtlar aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_callee_saved_positive",
        "negativeName": "os_context_switch_callee_saved_negative",
        "expectedMarker": "TURKOS/OS/K1025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. x19 x29 tanık değerleri ile Bir ofset kaydırılmış frame ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir ofset kaydırılmış frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1022"
    },
    {
      "id": "K1023",
      "number": 1023,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.callee_saved",
      "stage": "positive",
      "title": "Callee saved kayıt düzeni · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Assembly ve Rust ofsetleri eşittir.",
      "action": "os_context_switch_callee_saved_positive testini oluştur: “x19 x29 tanık değerleri”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Assembly ve Rust ofsetleri eşittir",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_callee_saved"
      },
      "dependencies": [
        "K1022"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "x19 x29 tanık değerleri",
      "counterexample": "Bir ofset kaydırılmış frame",
      "guestAcceptance": "Bin geçişte kayıtlar aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_callee_saved_positive",
        "negativeName": "os_context_switch_callee_saved_negative",
        "expectedMarker": "TURKOS/OS/K1025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; x19 x29 tanık değerleri girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir ofset kaydırılmış frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1023"
    },
    {
      "id": "K1024",
      "number": 1024,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.callee_saved",
      "stage": "negative",
      "title": "Callee saved kayıt düzeni · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Assembly ve Rust ofsetleri eşittir.",
      "action": "os_context_switch_callee_saved_negative testini oluştur: “Bir ofset kaydırılmış frame”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Assembly ve Rust ofsetleri eşittir",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_callee_saved"
      },
      "dependencies": [
        "K1023"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "x19 x29 tanık değerleri",
      "counterexample": "Bir ofset kaydırılmış frame",
      "guestAcceptance": "Bin geçişte kayıtlar aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_callee_saved_positive",
        "negativeName": "os_context_switch_callee_saved_negative",
        "expectedMarker": "TURKOS/OS/K1025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir ofset kaydırılmış frame karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir ofset kaydırılmış frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1024"
    },
    {
      "id": "K1025",
      "number": 1025,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.callee_saved",
      "stage": "integration",
      "title": "Callee saved kayıt düzeni · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Assembly ve Rust ofsetleri eşittir.",
      "action": "Tek ürün Image'ında “Bin geçişte kayıtlar aynı” kabulünü koştur. scripts/os-acceptance/context_switch.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Assembly ve Rust ofsetleri eşittir",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_callee_saved"
      },
      "dependencies": [
        "K1024"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "x19 x29 tanık değerleri",
      "counterexample": "Bir ofset kaydırılmış frame",
      "guestAcceptance": "Bin geçişte kayıtlar aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_callee_saved_positive",
        "negativeName": "os_context_switch_callee_saved_negative",
        "expectedMarker": "TURKOS/OS/K1025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bin geçişte kayıtlar aynı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir ofset kaydırılmış frame” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1025"
    },
    {
      "id": "K1026",
      "number": 1026,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.simd",
      "stage": "contract",
      "title": "SIMD FPU sahipliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Etkin SIMD bağlamı başka threade sızmaz.",
      "action": "“SIMD FPU sahipliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Etkin SIMD bağlamı başka threade sızmaz. “A ve B farklı v0 v31” kabulü ile “Lazy owner ölü threadde kalır” reddini aynı sözleşmeye bağla.",
      "invariant": "Etkin SIMD bağlamı başka threade sızmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_simd"
      },
      "dependencies": [
        "K1025"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "A ve B farklı v0 v31",
      "counterexample": "Lazy owner ölü threadde kalır",
      "guestAcceptance": "İki görev kendi SIMD hashini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_simd_positive",
        "negativeName": "os_context_switch_simd_negative",
        "expectedMarker": "TURKOS/OS/K1030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Etkin SIMD bağlamı başka threade sızmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Lazy owner ölü threadde kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1026"
    },
    {
      "id": "K1027",
      "number": 1027,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.simd",
      "stage": "implementation",
      "title": "SIMD FPU sahipliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Etkin SIMD bağlamı başka threade sızmaz.",
      "action": "kernel/src/arch/aarch64/context_switch.rs hedefinde os_context_switch_simd yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task_switch.S bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Etkin SIMD bağlamı başka threade sızmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_simd"
      },
      "dependencies": [
        "K1026"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "A ve B farklı v0 v31",
      "counterexample": "Lazy owner ölü threadde kalır",
      "guestAcceptance": "İki görev kendi SIMD hashini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_simd_positive",
        "negativeName": "os_context_switch_simd_negative",
        "expectedMarker": "TURKOS/OS/K1030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. A ve B farklı v0 v31 ile Lazy owner ölü threadde kalır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Lazy owner ölü threadde kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1027"
    },
    {
      "id": "K1028",
      "number": 1028,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.simd",
      "stage": "positive",
      "title": "SIMD FPU sahipliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Etkin SIMD bağlamı başka threade sızmaz.",
      "action": "os_context_switch_simd_positive testini oluştur: “A ve B farklı v0 v31”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Etkin SIMD bağlamı başka threade sızmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_simd"
      },
      "dependencies": [
        "K1027"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "A ve B farklı v0 v31",
      "counterexample": "Lazy owner ölü threadde kalır",
      "guestAcceptance": "İki görev kendi SIMD hashini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_simd_positive",
        "negativeName": "os_context_switch_simd_negative",
        "expectedMarker": "TURKOS/OS/K1030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; A ve B farklı v0 v31 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Lazy owner ölü threadde kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1028"
    },
    {
      "id": "K1029",
      "number": 1029,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.simd",
      "stage": "negative",
      "title": "SIMD FPU sahipliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Etkin SIMD bağlamı başka threade sızmaz.",
      "action": "os_context_switch_simd_negative testini oluştur: “Lazy owner ölü threadde kalır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Etkin SIMD bağlamı başka threade sızmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_simd"
      },
      "dependencies": [
        "K1028"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "A ve B farklı v0 v31",
      "counterexample": "Lazy owner ölü threadde kalır",
      "guestAcceptance": "İki görev kendi SIMD hashini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_simd_positive",
        "negativeName": "os_context_switch_simd_negative",
        "expectedMarker": "TURKOS/OS/K1030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Lazy owner ölü threadde kalır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Lazy owner ölü threadde kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1029"
    },
    {
      "id": "K1030",
      "number": 1030,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.simd",
      "stage": "integration",
      "title": "SIMD FPU sahipliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Etkin SIMD bağlamı başka threade sızmaz.",
      "action": "Tek ürün Image'ında “İki görev kendi SIMD hashini korur” kabulünü koştur. scripts/os-acceptance/context_switch.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Etkin SIMD bağlamı başka threade sızmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_simd"
      },
      "dependencies": [
        "K1029"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "A ve B farklı v0 v31",
      "counterexample": "Lazy owner ölü threadde kalır",
      "guestAcceptance": "İki görev kendi SIMD hashini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_simd_positive",
        "negativeName": "os_context_switch_simd_negative",
        "expectedMarker": "TURKOS/OS/K1030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki görev kendi SIMD hashini korur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Lazy owner ölü threadde kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1030"
    },
    {
      "id": "K1031",
      "number": 1031,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.preempt",
      "stage": "contract",
      "title": "Timerdan thread değiştirme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Kesilen frame güvenli switch noktasına bağlanır.",
      "action": "“Timerdan thread değiştirme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kesilen frame güvenli switch noktasına bağlanır. “CPU yoğun A ve B” kabulü ile “Kernel kritik bölgede zorunlu switch” reddini aynı sözleşmeye bağla.",
      "invariant": "Kesilen frame güvenli switch noktasına bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_preempt"
      },
      "dependencies": [
        "K1030"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "CPU yoğun A ve B",
      "counterexample": "Kernel kritik bölgede zorunlu switch",
      "guestAcceptance": "Kritik bölge sonrası erteleme tüketilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_preempt_positive",
        "negativeName": "os_context_switch_preempt_negative",
        "expectedMarker": "TURKOS/OS/K1035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kesilen frame güvenli switch noktasına bağlanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kernel kritik bölgede zorunlu switch” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1031"
    },
    {
      "id": "K1032",
      "number": 1032,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.preempt",
      "stage": "implementation",
      "title": "Timerdan thread değiştirme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Kesilen frame güvenli switch noktasına bağlanır.",
      "action": "kernel/src/arch/aarch64/context_switch.rs hedefinde os_context_switch_preempt yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task_switch.S bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kesilen frame güvenli switch noktasına bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_preempt"
      },
      "dependencies": [
        "K1031"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "CPU yoğun A ve B",
      "counterexample": "Kernel kritik bölgede zorunlu switch",
      "guestAcceptance": "Kritik bölge sonrası erteleme tüketilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_preempt_positive",
        "negativeName": "os_context_switch_preempt_negative",
        "expectedMarker": "TURKOS/OS/K1035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. CPU yoğun A ve B ile Kernel kritik bölgede zorunlu switch ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kernel kritik bölgede zorunlu switch” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1032"
    },
    {
      "id": "K1033",
      "number": 1033,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.preempt",
      "stage": "positive",
      "title": "Timerdan thread değiştirme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Kesilen frame güvenli switch noktasına bağlanır.",
      "action": "os_context_switch_preempt_positive testini oluştur: “CPU yoğun A ve B”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kesilen frame güvenli switch noktasına bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_preempt"
      },
      "dependencies": [
        "K1032"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "CPU yoğun A ve B",
      "counterexample": "Kernel kritik bölgede zorunlu switch",
      "guestAcceptance": "Kritik bölge sonrası erteleme tüketilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_preempt_positive",
        "negativeName": "os_context_switch_preempt_negative",
        "expectedMarker": "TURKOS/OS/K1035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; CPU yoğun A ve B girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kernel kritik bölgede zorunlu switch” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1033"
    },
    {
      "id": "K1034",
      "number": 1034,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.preempt",
      "stage": "negative",
      "title": "Timerdan thread değiştirme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Kesilen frame güvenli switch noktasına bağlanır.",
      "action": "os_context_switch_preempt_negative testini oluştur: “Kernel kritik bölgede zorunlu switch”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kesilen frame güvenli switch noktasına bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_preempt"
      },
      "dependencies": [
        "K1033"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "CPU yoğun A ve B",
      "counterexample": "Kernel kritik bölgede zorunlu switch",
      "guestAcceptance": "Kritik bölge sonrası erteleme tüketilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_preempt_positive",
        "negativeName": "os_context_switch_preempt_negative",
        "expectedMarker": "TURKOS/OS/K1035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel kritik bölgede zorunlu switch karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kernel kritik bölgede zorunlu switch” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1034"
    },
    {
      "id": "K1035",
      "number": 1035,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.preempt",
      "stage": "integration",
      "title": "Timerdan thread değiştirme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Kesilen frame güvenli switch noktasına bağlanır.",
      "action": "Tek ürün Image'ında “Kritik bölge sonrası erteleme tüketilir” kabulünü koştur. scripts/os-acceptance/context_switch.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kesilen frame güvenli switch noktasına bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_preempt"
      },
      "dependencies": [
        "K1034"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "CPU yoğun A ve B",
      "counterexample": "Kernel kritik bölgede zorunlu switch",
      "guestAcceptance": "Kritik bölge sonrası erteleme tüketilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_preempt_positive",
        "negativeName": "os_context_switch_preempt_negative",
        "expectedMarker": "TURKOS/OS/K1035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kritik bölge sonrası erteleme tüketilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kernel kritik bölgede zorunlu switch” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1035"
    },
    {
      "id": "K1036",
      "number": 1036,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.idle",
      "stage": "contract",
      "title": "Idle ve WFI yolu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İş varken CPU idleda kalmaz.",
      "action": "“Idle ve WFI yolu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İş varken CPU idleda kalmaz. “Boş kuyruk sonra wake” kabulü ile “Wake WFI sınırında kaybolur” reddini aynı sözleşmeye bağla.",
      "invariant": "İş varken CPU idleda kalmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_idle"
      },
      "dependencies": [
        "K1035"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Boş kuyruk sonra wake",
      "counterexample": "Wake WFI sınırında kaybolur",
      "guestAcceptance": "Yeni görev bounded zamanda çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_idle_positive",
        "negativeName": "os_context_switch_idle_negative",
        "expectedMarker": "TURKOS/OS/K1040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İş varken CPU idleda kalmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Wake WFI sınırında kaybolur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1036"
    },
    {
      "id": "K1037",
      "number": 1037,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.idle",
      "stage": "implementation",
      "title": "Idle ve WFI yolu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İş varken CPU idleda kalmaz.",
      "action": "kernel/src/arch/aarch64/context_switch.rs hedefinde os_context_switch_idle yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task_switch.S bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İş varken CPU idleda kalmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_idle"
      },
      "dependencies": [
        "K1036"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Boş kuyruk sonra wake",
      "counterexample": "Wake WFI sınırında kaybolur",
      "guestAcceptance": "Yeni görev bounded zamanda çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_idle_positive",
        "negativeName": "os_context_switch_idle_negative",
        "expectedMarker": "TURKOS/OS/K1040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş kuyruk sonra wake ile Wake WFI sınırında kaybolur ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Wake WFI sınırında kaybolur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1037"
    },
    {
      "id": "K1038",
      "number": 1038,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.idle",
      "stage": "positive",
      "title": "Idle ve WFI yolu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İş varken CPU idleda kalmaz.",
      "action": "os_context_switch_idle_positive testini oluştur: “Boş kuyruk sonra wake”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İş varken CPU idleda kalmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_idle"
      },
      "dependencies": [
        "K1037"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Boş kuyruk sonra wake",
      "counterexample": "Wake WFI sınırında kaybolur",
      "guestAcceptance": "Yeni görev bounded zamanda çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_idle_positive",
        "negativeName": "os_context_switch_idle_negative",
        "expectedMarker": "TURKOS/OS/K1040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş kuyruk sonra wake girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Wake WFI sınırında kaybolur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1038"
    },
    {
      "id": "K1039",
      "number": 1039,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.idle",
      "stage": "negative",
      "title": "Idle ve WFI yolu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İş varken CPU idleda kalmaz.",
      "action": "os_context_switch_idle_negative testini oluştur: “Wake WFI sınırında kaybolur”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İş varken CPU idleda kalmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_idle"
      },
      "dependencies": [
        "K1038"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Boş kuyruk sonra wake",
      "counterexample": "Wake WFI sınırında kaybolur",
      "guestAcceptance": "Yeni görev bounded zamanda çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_idle_positive",
        "negativeName": "os_context_switch_idle_negative",
        "expectedMarker": "TURKOS/OS/K1040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Wake WFI sınırında kaybolur karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Wake WFI sınırında kaybolur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1039"
    },
    {
      "id": "K1040",
      "number": 1040,
      "phase": 5,
      "module": "context_switch",
      "feature": "context_switch.idle",
      "stage": "integration",
      "title": "Idle ve WFI yolu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İş varken CPU idleda kalmaz.",
      "action": "Tek ürün Image'ında “Yeni görev bounded zamanda çalışır” kabulünü koştur. scripts/os-acceptance/context_switch.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İş varken CPU idleda kalmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/context_switch.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task_switch.S",
        "existingReferenceSha256": "60b9e4bd6ca0f95652ff9dfe69b32160bfbc1c6a9dba52a892de871d2b36fb6f",
        "symbol": "os_context_switch_idle"
      },
      "dependencies": [
        "K1039"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Boş kuyruk sonra wake",
      "counterexample": "Wake WFI sınırında kaybolur",
      "guestAcceptance": "Yeni görev bounded zamanda çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/context_switch.rs",
        "harness": "scripts/os-acceptance/context_switch.mjs",
        "positiveName": "os_context_switch_idle_positive",
        "negativeName": "os_context_switch_idle_negative",
        "expectedMarker": "TURKOS/OS/K1040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni görev bounded zamanda çalışır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Wake WFI sınırında kaybolur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1040"
    },
    {
      "id": "K1041",
      "number": 1041,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.enqueue",
      "stage": "contract",
      "title": "Ready kuyruğa tek ekleme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Thread kuyrukta en fazla bir kez bulunur.",
      "action": "“Ready kuyruğa tek ekleme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Thread kuyrukta en fazla bir kez bulunur. “Üç farklı Ready thread” kabulü ile “Aynı thread iki enqueue” reddini aynı sözleşmeye bağla.",
      "invariant": "Thread kuyrukta en fazla bir kez bulunur",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_enqueue"
      },
      "dependencies": [
        "K1040"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç farklı Ready thread",
      "counterexample": "Aynı thread iki enqueue",
      "guestAcceptance": "Üç thread birer dilim alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_enqueue_positive",
        "negativeName": "os_runqueue_enqueue_negative",
        "expectedMarker": "TURKOS/OS/K1045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Thread kuyrukta en fazla bir kez bulunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Aynı thread iki enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1041"
    },
    {
      "id": "K1042",
      "number": 1042,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.enqueue",
      "stage": "implementation",
      "title": "Ready kuyruğa tek ekleme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Thread kuyrukta en fazla bir kez bulunur.",
      "action": "kernel/src/runtime/runqueue.rs hedefinde os_runqueue_enqueue yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Thread kuyrukta en fazla bir kez bulunur",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_enqueue"
      },
      "dependencies": [
        "K1041"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç farklı Ready thread",
      "counterexample": "Aynı thread iki enqueue",
      "guestAcceptance": "Üç thread birer dilim alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_enqueue_positive",
        "negativeName": "os_runqueue_enqueue_negative",
        "expectedMarker": "TURKOS/OS/K1045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç farklı Ready thread ile Aynı thread iki enqueue ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Aynı thread iki enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1042"
    },
    {
      "id": "K1043",
      "number": 1043,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.enqueue",
      "stage": "positive",
      "title": "Ready kuyruğa tek ekleme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Thread kuyrukta en fazla bir kez bulunur.",
      "action": "os_runqueue_enqueue_positive testini oluştur: “Üç farklı Ready thread”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Thread kuyrukta en fazla bir kez bulunur",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_enqueue"
      },
      "dependencies": [
        "K1042"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç farklı Ready thread",
      "counterexample": "Aynı thread iki enqueue",
      "guestAcceptance": "Üç thread birer dilim alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_enqueue_positive",
        "negativeName": "os_runqueue_enqueue_negative",
        "expectedMarker": "TURKOS/OS/K1045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç farklı Ready thread girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Aynı thread iki enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1043"
    },
    {
      "id": "K1044",
      "number": 1044,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.enqueue",
      "stage": "negative",
      "title": "Ready kuyruğa tek ekleme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Thread kuyrukta en fazla bir kez bulunur.",
      "action": "os_runqueue_enqueue_negative testini oluştur: “Aynı thread iki enqueue”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Thread kuyrukta en fazla bir kez bulunur",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_enqueue"
      },
      "dependencies": [
        "K1043"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç farklı Ready thread",
      "counterexample": "Aynı thread iki enqueue",
      "guestAcceptance": "Üç thread birer dilim alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_enqueue_positive",
        "negativeName": "os_runqueue_enqueue_negative",
        "expectedMarker": "TURKOS/OS/K1045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aynı thread iki enqueue karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Aynı thread iki enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1044"
    },
    {
      "id": "K1045",
      "number": 1045,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.enqueue",
      "stage": "integration",
      "title": "Ready kuyruğa tek ekleme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Thread kuyrukta en fazla bir kez bulunur.",
      "action": "Tek ürün Image'ında “Üç thread birer dilim alır” kabulünü koştur. scripts/os-acceptance/runqueue.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Thread kuyrukta en fazla bir kez bulunur",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_enqueue"
      },
      "dependencies": [
        "K1044"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç farklı Ready thread",
      "counterexample": "Aynı thread iki enqueue",
      "guestAcceptance": "Üç thread birer dilim alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_enqueue_positive",
        "negativeName": "os_runqueue_enqueue_negative",
        "expectedMarker": "TURKOS/OS/K1045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Üç thread birer dilim alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Aynı thread iki enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1045"
    },
    {
      "id": "K1046",
      "number": 1046,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.select",
      "stage": "contract",
      "title": "Çalışır görev seçimi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Ölü bloklu yabancı nesil seçilmez.",
      "action": "“Çalışır görev seçimi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ölü bloklu yabancı nesil seçilmez. “Ready ve Sleeping karışık” kabulü ile “Stale slot kuyruğa enjekte” reddini aynı sözleşmeye bağla.",
      "invariant": "Ölü bloklu yabancı nesil seçilmez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_select"
      },
      "dependencies": [
        "K1045"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready ve Sleeping karışık",
      "counterexample": "Stale slot kuyruğa enjekte",
      "guestAcceptance": "Yalnız canlı Ready seçilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_select_positive",
        "negativeName": "os_runqueue_select_negative",
        "expectedMarker": "TURKOS/OS/K1050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ölü bloklu yabancı nesil seçilmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Stale slot kuyruğa enjekte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1046"
    },
    {
      "id": "K1047",
      "number": 1047,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.select",
      "stage": "implementation",
      "title": "Çalışır görev seçimi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Ölü bloklu yabancı nesil seçilmez.",
      "action": "kernel/src/runtime/runqueue.rs hedefinde os_runqueue_select yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ölü bloklu yabancı nesil seçilmez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_select"
      },
      "dependencies": [
        "K1046"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready ve Sleeping karışık",
      "counterexample": "Stale slot kuyruğa enjekte",
      "guestAcceptance": "Yalnız canlı Ready seçilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_select_positive",
        "negativeName": "os_runqueue_select_negative",
        "expectedMarker": "TURKOS/OS/K1050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Ready ve Sleeping karışık ile Stale slot kuyruğa enjekte ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Stale slot kuyruğa enjekte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1047"
    },
    {
      "id": "K1048",
      "number": 1048,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.select",
      "stage": "positive",
      "title": "Çalışır görev seçimi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Ölü bloklu yabancı nesil seçilmez.",
      "action": "os_runqueue_select_positive testini oluştur: “Ready ve Sleeping karışık”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ölü bloklu yabancı nesil seçilmez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_select"
      },
      "dependencies": [
        "K1047"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready ve Sleeping karışık",
      "counterexample": "Stale slot kuyruğa enjekte",
      "guestAcceptance": "Yalnız canlı Ready seçilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_select_positive",
        "negativeName": "os_runqueue_select_negative",
        "expectedMarker": "TURKOS/OS/K1050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Ready ve Sleeping karışık girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Stale slot kuyruğa enjekte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1048"
    },
    {
      "id": "K1049",
      "number": 1049,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.select",
      "stage": "negative",
      "title": "Çalışır görev seçimi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Ölü bloklu yabancı nesil seçilmez.",
      "action": "os_runqueue_select_negative testini oluştur: “Stale slot kuyruğa enjekte”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ölü bloklu yabancı nesil seçilmez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_select"
      },
      "dependencies": [
        "K1048"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready ve Sleeping karışık",
      "counterexample": "Stale slot kuyruğa enjekte",
      "guestAcceptance": "Yalnız canlı Ready seçilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_select_positive",
        "negativeName": "os_runqueue_select_negative",
        "expectedMarker": "TURKOS/OS/K1050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Stale slot kuyruğa enjekte karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Stale slot kuyruğa enjekte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1049"
    },
    {
      "id": "K1050",
      "number": 1050,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.select",
      "stage": "integration",
      "title": "Çalışır görev seçimi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Ölü bloklu yabancı nesil seçilmez.",
      "action": "Tek ürün Image'ında “Yalnız canlı Ready seçilir” kabulünü koştur. scripts/os-acceptance/runqueue.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ölü bloklu yabancı nesil seçilmez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_select"
      },
      "dependencies": [
        "K1049"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Ready ve Sleeping karışık",
      "counterexample": "Stale slot kuyruğa enjekte",
      "guestAcceptance": "Yalnız canlı Ready seçilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_select_positive",
        "negativeName": "os_runqueue_select_negative",
        "expectedMarker": "TURKOS/OS/K1050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yalnız canlı Ready seçilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Stale slot kuyruğa enjekte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1050"
    },
    {
      "id": "K1051",
      "number": 1051,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.quantum",
      "stage": "contract",
      "title": "Zaman dilimi hesabı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Dilim bittiğinde runnable komşu ilerler.",
      "action": "“Zaman dilimi hesabı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Dilim bittiğinde runnable komşu ilerler. “İki CPU yoğun görev” kabulü ile “Bir tick iki dilim düşürür” reddini aynı sözleşmeye bağla.",
      "invariant": "Dilim bittiğinde runnable komşu ilerler",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_quantum"
      },
      "dependencies": [
        "K1050"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki CPU yoğun görev",
      "counterexample": "Bir tick iki dilim düşürür",
      "guestAcceptance": "Pay ölçülür garanti diye sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_quantum_positive",
        "negativeName": "os_runqueue_quantum_negative",
        "expectedMarker": "TURKOS/OS/K1055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Dilim bittiğinde runnable komşu ilerler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir tick iki dilim düşürür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1051"
    },
    {
      "id": "K1052",
      "number": 1052,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.quantum",
      "stage": "implementation",
      "title": "Zaman dilimi hesabı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Dilim bittiğinde runnable komşu ilerler.",
      "action": "kernel/src/runtime/runqueue.rs hedefinde os_runqueue_quantum yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Dilim bittiğinde runnable komşu ilerler",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_quantum"
      },
      "dependencies": [
        "K1051"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki CPU yoğun görev",
      "counterexample": "Bir tick iki dilim düşürür",
      "guestAcceptance": "Pay ölçülür garanti diye sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_quantum_positive",
        "negativeName": "os_runqueue_quantum_negative",
        "expectedMarker": "TURKOS/OS/K1055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki CPU yoğun görev ile Bir tick iki dilim düşürür ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir tick iki dilim düşürür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1052"
    },
    {
      "id": "K1053",
      "number": 1053,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.quantum",
      "stage": "positive",
      "title": "Zaman dilimi hesabı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Dilim bittiğinde runnable komşu ilerler.",
      "action": "os_runqueue_quantum_positive testini oluştur: “İki CPU yoğun görev”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Dilim bittiğinde runnable komşu ilerler",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_quantum"
      },
      "dependencies": [
        "K1052"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki CPU yoğun görev",
      "counterexample": "Bir tick iki dilim düşürür",
      "guestAcceptance": "Pay ölçülür garanti diye sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_quantum_positive",
        "negativeName": "os_runqueue_quantum_negative",
        "expectedMarker": "TURKOS/OS/K1055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki CPU yoğun görev girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir tick iki dilim düşürür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1053"
    },
    {
      "id": "K1054",
      "number": 1054,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.quantum",
      "stage": "negative",
      "title": "Zaman dilimi hesabı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Dilim bittiğinde runnable komşu ilerler.",
      "action": "os_runqueue_quantum_negative testini oluştur: “Bir tick iki dilim düşürür”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Dilim bittiğinde runnable komşu ilerler",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_quantum"
      },
      "dependencies": [
        "K1053"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki CPU yoğun görev",
      "counterexample": "Bir tick iki dilim düşürür",
      "guestAcceptance": "Pay ölçülür garanti diye sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_quantum_positive",
        "negativeName": "os_runqueue_quantum_negative",
        "expectedMarker": "TURKOS/OS/K1055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir tick iki dilim düşürür karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir tick iki dilim düşürür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1054"
    },
    {
      "id": "K1055",
      "number": 1055,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.quantum",
      "stage": "integration",
      "title": "Zaman dilimi hesabı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Dilim bittiğinde runnable komşu ilerler.",
      "action": "Tek ürün Image'ında “Pay ölçülür garanti diye sunulmaz” kabulünü koştur. scripts/os-acceptance/runqueue.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Dilim bittiğinde runnable komşu ilerler",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_quantum"
      },
      "dependencies": [
        "K1054"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki CPU yoğun görev",
      "counterexample": "Bir tick iki dilim düşürür",
      "guestAcceptance": "Pay ölçülür garanti diye sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_quantum_positive",
        "negativeName": "os_runqueue_quantum_negative",
        "expectedMarker": "TURKOS/OS/K1055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Pay ölçülür garanti diye sunulmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir tick iki dilim düşürür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1055"
    },
    {
      "id": "K1056",
      "number": 1056,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.priority",
      "stage": "contract",
      "title": "Sınırlı öncelik modeli · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Öncelik kullanıcıya kernel yetkisi vermez.",
      "action": "“Sınırlı öncelik modeli” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Öncelik kullanıcıya kernel yetkisi vermez. “Normal ve düşük sınıf” kabulü ile “Kullanıcı IRQ sınıfı ister” reddini aynı sözleşmeye bağla.",
      "invariant": "Öncelik kullanıcıya kernel yetkisi vermez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_priority"
      },
      "dependencies": [
        "K1055"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Normal ve düşük sınıf",
      "counterexample": "Kullanıcı IRQ sınıfı ister",
      "guestAcceptance": "Ret sonrası normal görev sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_priority_positive",
        "negativeName": "os_runqueue_priority_negative",
        "expectedMarker": "TURKOS/OS/K1060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Öncelik kullanıcıya kernel yetkisi vermez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kullanıcı IRQ sınıfı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1056"
    },
    {
      "id": "K1057",
      "number": 1057,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.priority",
      "stage": "implementation",
      "title": "Sınırlı öncelik modeli · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Öncelik kullanıcıya kernel yetkisi vermez.",
      "action": "kernel/src/runtime/runqueue.rs hedefinde os_runqueue_priority yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Öncelik kullanıcıya kernel yetkisi vermez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_priority"
      },
      "dependencies": [
        "K1056"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Normal ve düşük sınıf",
      "counterexample": "Kullanıcı IRQ sınıfı ister",
      "guestAcceptance": "Ret sonrası normal görev sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_priority_positive",
        "negativeName": "os_runqueue_priority_negative",
        "expectedMarker": "TURKOS/OS/K1060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Normal ve düşük sınıf ile Kullanıcı IRQ sınıfı ister ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kullanıcı IRQ sınıfı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1057"
    },
    {
      "id": "K1058",
      "number": 1058,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.priority",
      "stage": "positive",
      "title": "Sınırlı öncelik modeli · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Öncelik kullanıcıya kernel yetkisi vermez.",
      "action": "os_runqueue_priority_positive testini oluştur: “Normal ve düşük sınıf”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Öncelik kullanıcıya kernel yetkisi vermez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_priority"
      },
      "dependencies": [
        "K1057"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Normal ve düşük sınıf",
      "counterexample": "Kullanıcı IRQ sınıfı ister",
      "guestAcceptance": "Ret sonrası normal görev sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_priority_positive",
        "negativeName": "os_runqueue_priority_negative",
        "expectedMarker": "TURKOS/OS/K1060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Normal ve düşük sınıf girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kullanıcı IRQ sınıfı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1058"
    },
    {
      "id": "K1059",
      "number": 1059,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.priority",
      "stage": "negative",
      "title": "Sınırlı öncelik modeli · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Öncelik kullanıcıya kernel yetkisi vermez.",
      "action": "os_runqueue_priority_negative testini oluştur: “Kullanıcı IRQ sınıfı ister”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Öncelik kullanıcıya kernel yetkisi vermez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_priority"
      },
      "dependencies": [
        "K1058"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Normal ve düşük sınıf",
      "counterexample": "Kullanıcı IRQ sınıfı ister",
      "guestAcceptance": "Ret sonrası normal görev sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_priority_positive",
        "negativeName": "os_runqueue_priority_negative",
        "expectedMarker": "TURKOS/OS/K1060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kullanıcı IRQ sınıfı ister karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kullanıcı IRQ sınıfı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1059"
    },
    {
      "id": "K1060",
      "number": 1060,
      "phase": 5,
      "module": "runqueue",
      "feature": "runqueue.priority",
      "stage": "integration",
      "title": "Sınırlı öncelik modeli · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Öncelik kullanıcıya kernel yetkisi vermez.",
      "action": "Tek ürün Image'ında “Ret sonrası normal görev sürer” kabulünü koştur. scripts/os-acceptance/runqueue.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Öncelik kullanıcıya kernel yetkisi vermez",
      "source": {
        "target": "kernel/src/runtime/runqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_runqueue_priority"
      },
      "dependencies": [
        "K1059"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Normal ve düşük sınıf",
      "counterexample": "Kullanıcı IRQ sınıfı ister",
      "guestAcceptance": "Ret sonrası normal görev sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/runqueue.rs",
        "harness": "scripts/os-acceptance/runqueue.mjs",
        "positiveName": "os_runqueue_priority_positive",
        "negativeName": "os_runqueue_priority_negative",
        "expectedMarker": "TURKOS/OS/K1060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sonrası normal görev sürer; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kullanıcı IRQ sınıfı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1060"
    },
    {
      "id": "K1061",
      "number": 1061,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.wait_token",
      "stage": "contract",
      "title": "Bekleme token nesli · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Wake yalnız doğru waiterı uyandırır.",
      "action": "“Bekleme token nesli” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Wake yalnız doğru waiterı uyandırır. “İki nesil aynı kanal” kabulü ile “Eski nesil token” reddini aynı sözleşmeye bağla.",
      "invariant": "Wake yalnız doğru waiterı uyandırır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_wait_token"
      },
      "dependencies": [
        "K1060"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki nesil aynı kanal",
      "counterexample": "Eski nesil token",
      "guestAcceptance": "Yeni waiter yanlış uyanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_wait_token_positive",
        "negativeName": "os_thread_wait_wait_token_negative",
        "expectedMarker": "TURKOS/OS/K1065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Wake yalnız doğru waiterı uyandırır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski nesil token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1061"
    },
    {
      "id": "K1062",
      "number": 1062,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.wait_token",
      "stage": "implementation",
      "title": "Bekleme token nesli · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Wake yalnız doğru waiterı uyandırır.",
      "action": "kernel/src/runtime/thread_wait.rs hedefinde os_thread_wait_wait_token yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Wake yalnız doğru waiterı uyandırır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_wait_token"
      },
      "dependencies": [
        "K1061"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki nesil aynı kanal",
      "counterexample": "Eski nesil token",
      "guestAcceptance": "Yeni waiter yanlış uyanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_wait_token_positive",
        "negativeName": "os_thread_wait_wait_token_negative",
        "expectedMarker": "TURKOS/OS/K1065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki nesil aynı kanal ile Eski nesil token ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski nesil token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1062"
    },
    {
      "id": "K1063",
      "number": 1063,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.wait_token",
      "stage": "positive",
      "title": "Bekleme token nesli · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Wake yalnız doğru waiterı uyandırır.",
      "action": "os_thread_wait_wait_token_positive testini oluştur: “İki nesil aynı kanal”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Wake yalnız doğru waiterı uyandırır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_wait_token"
      },
      "dependencies": [
        "K1062"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki nesil aynı kanal",
      "counterexample": "Eski nesil token",
      "guestAcceptance": "Yeni waiter yanlış uyanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_wait_token_positive",
        "negativeName": "os_thread_wait_wait_token_negative",
        "expectedMarker": "TURKOS/OS/K1065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki nesil aynı kanal girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski nesil token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1063"
    },
    {
      "id": "K1064",
      "number": 1064,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.wait_token",
      "stage": "negative",
      "title": "Bekleme token nesli · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Wake yalnız doğru waiterı uyandırır.",
      "action": "os_thread_wait_wait_token_negative testini oluştur: “Eski nesil token”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Wake yalnız doğru waiterı uyandırır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_wait_token"
      },
      "dependencies": [
        "K1063"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki nesil aynı kanal",
      "counterexample": "Eski nesil token",
      "guestAcceptance": "Yeni waiter yanlış uyanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_wait_token_positive",
        "negativeName": "os_thread_wait_wait_token_negative",
        "expectedMarker": "TURKOS/OS/K1065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski nesil token karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski nesil token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1064"
    },
    {
      "id": "K1065",
      "number": 1065,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.wait_token",
      "stage": "integration",
      "title": "Bekleme token nesli · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Wake yalnız doğru waiterı uyandırır.",
      "action": "Tek ürün Image'ında “Yeni waiter yanlış uyanmaz” kabulünü koştur. scripts/os-acceptance/thread_wait.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Wake yalnız doğru waiterı uyandırır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_wait_token"
      },
      "dependencies": [
        "K1064"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki nesil aynı kanal",
      "counterexample": "Eski nesil token",
      "guestAcceptance": "Yeni waiter yanlış uyanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_wait_token_positive",
        "negativeName": "os_thread_wait_wait_token_negative",
        "expectedMarker": "TURKOS/OS/K1065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni waiter yanlış uyanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski nesil token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1065"
    },
    {
      "id": "K1066",
      "number": 1066,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.lost_wake",
      "stage": "contract",
      "title": "Atomik koşul ve kuyruğa giriş · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Koşul kontrolü wake olayını kaybetmez.",
      "action": "“Atomik koşul ve kuyruğa giriş” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Koşul kontrolü wake olayını kaybetmez. “Producer wait sınırında sinyal” kabulü ile “Kontrol sonrası erken wake” reddini aynı sözleşmeye bağla.",
      "invariant": "Koşul kontrolü wake olayını kaybetmez",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_lost_wake"
      },
      "dependencies": [
        "K1065"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Producer wait sınırında sinyal",
      "counterexample": "Kontrol sonrası erken wake",
      "guestAcceptance": "Waiter uyumadan sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_lost_wake_positive",
        "negativeName": "os_thread_wait_lost_wake_negative",
        "expectedMarker": "TURKOS/OS/K1070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Koşul kontrolü wake olayını kaybetmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kontrol sonrası erken wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1066"
    },
    {
      "id": "K1067",
      "number": 1067,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.lost_wake",
      "stage": "implementation",
      "title": "Atomik koşul ve kuyruğa giriş · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Koşul kontrolü wake olayını kaybetmez.",
      "action": "kernel/src/runtime/thread_wait.rs hedefinde os_thread_wait_lost_wake yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Koşul kontrolü wake olayını kaybetmez",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_lost_wake"
      },
      "dependencies": [
        "K1066"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Producer wait sınırında sinyal",
      "counterexample": "Kontrol sonrası erken wake",
      "guestAcceptance": "Waiter uyumadan sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_lost_wake_positive",
        "negativeName": "os_thread_wait_lost_wake_negative",
        "expectedMarker": "TURKOS/OS/K1070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Producer wait sınırında sinyal ile Kontrol sonrası erken wake ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kontrol sonrası erken wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1067"
    },
    {
      "id": "K1068",
      "number": 1068,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.lost_wake",
      "stage": "positive",
      "title": "Atomik koşul ve kuyruğa giriş · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Koşul kontrolü wake olayını kaybetmez.",
      "action": "os_thread_wait_lost_wake_positive testini oluştur: “Producer wait sınırında sinyal”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Koşul kontrolü wake olayını kaybetmez",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_lost_wake"
      },
      "dependencies": [
        "K1067"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Producer wait sınırında sinyal",
      "counterexample": "Kontrol sonrası erken wake",
      "guestAcceptance": "Waiter uyumadan sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_lost_wake_positive",
        "negativeName": "os_thread_wait_lost_wake_negative",
        "expectedMarker": "TURKOS/OS/K1070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Producer wait sınırında sinyal girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kontrol sonrası erken wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1068"
    },
    {
      "id": "K1069",
      "number": 1069,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.lost_wake",
      "stage": "negative",
      "title": "Atomik koşul ve kuyruğa giriş · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Koşul kontrolü wake olayını kaybetmez.",
      "action": "os_thread_wait_lost_wake_negative testini oluştur: “Kontrol sonrası erken wake”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Koşul kontrolü wake olayını kaybetmez",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_lost_wake"
      },
      "dependencies": [
        "K1068"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Producer wait sınırında sinyal",
      "counterexample": "Kontrol sonrası erken wake",
      "guestAcceptance": "Waiter uyumadan sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_lost_wake_positive",
        "negativeName": "os_thread_wait_lost_wake_negative",
        "expectedMarker": "TURKOS/OS/K1070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kontrol sonrası erken wake karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kontrol sonrası erken wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1069"
    },
    {
      "id": "K1070",
      "number": 1070,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.lost_wake",
      "stage": "integration",
      "title": "Atomik koşul ve kuyruğa giriş · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Koşul kontrolü wake olayını kaybetmez.",
      "action": "Tek ürün Image'ında “Waiter uyumadan sonucu alır” kabulünü koştur. scripts/os-acceptance/thread_wait.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Koşul kontrolü wake olayını kaybetmez",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_lost_wake"
      },
      "dependencies": [
        "K1069"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Producer wait sınırında sinyal",
      "counterexample": "Kontrol sonrası erken wake",
      "guestAcceptance": "Waiter uyumadan sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_lost_wake_positive",
        "negativeName": "os_thread_wait_lost_wake_negative",
        "expectedMarker": "TURKOS/OS/K1070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Waiter uyumadan sonucu alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kontrol sonrası erken wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1070"
    },
    {
      "id": "K1071",
      "number": 1071,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.timeout",
      "stage": "contract",
      "title": "Bekleme süre aşımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Sonuç ve timeout yalnız bir kazanan üretir.",
      "action": "“Bekleme süre aşımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Sonuç ve timeout yalnız bir kazanan üretir. “Sinyal deadline ile aynı tick” kabulü ile “İki completion teslimi” reddini aynı sözleşmeye bağla.",
      "invariant": "Sonuç ve timeout yalnız bir kazanan üretir",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_timeout"
      },
      "dependencies": [
        "K1070"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Sinyal deadline ile aynı tick",
      "counterexample": "İki completion teslimi",
      "guestAcceptance": "Tek dönüş ve kuyrukta artık kayıt yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_timeout_positive",
        "negativeName": "os_thread_wait_timeout_negative",
        "expectedMarker": "TURKOS/OS/K1075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Sonuç ve timeout yalnız bir kazanan üretir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki completion teslimi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1071"
    },
    {
      "id": "K1072",
      "number": 1072,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.timeout",
      "stage": "implementation",
      "title": "Bekleme süre aşımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Sonuç ve timeout yalnız bir kazanan üretir.",
      "action": "kernel/src/runtime/thread_wait.rs hedefinde os_thread_wait_timeout yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Sonuç ve timeout yalnız bir kazanan üretir",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_timeout"
      },
      "dependencies": [
        "K1071"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Sinyal deadline ile aynı tick",
      "counterexample": "İki completion teslimi",
      "guestAcceptance": "Tek dönüş ve kuyrukta artık kayıt yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_timeout_positive",
        "negativeName": "os_thread_wait_timeout_negative",
        "expectedMarker": "TURKOS/OS/K1075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Sinyal deadline ile aynı tick ile İki completion teslimi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki completion teslimi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1072"
    },
    {
      "id": "K1073",
      "number": 1073,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.timeout",
      "stage": "positive",
      "title": "Bekleme süre aşımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Sonuç ve timeout yalnız bir kazanan üretir.",
      "action": "os_thread_wait_timeout_positive testini oluştur: “Sinyal deadline ile aynı tick”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Sonuç ve timeout yalnız bir kazanan üretir",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_timeout"
      },
      "dependencies": [
        "K1072"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Sinyal deadline ile aynı tick",
      "counterexample": "İki completion teslimi",
      "guestAcceptance": "Tek dönüş ve kuyrukta artık kayıt yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_timeout_positive",
        "negativeName": "os_thread_wait_timeout_negative",
        "expectedMarker": "TURKOS/OS/K1075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Sinyal deadline ile aynı tick girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki completion teslimi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1073"
    },
    {
      "id": "K1074",
      "number": 1074,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.timeout",
      "stage": "negative",
      "title": "Bekleme süre aşımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Sonuç ve timeout yalnız bir kazanan üretir.",
      "action": "os_thread_wait_timeout_negative testini oluştur: “İki completion teslimi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Sonuç ve timeout yalnız bir kazanan üretir",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_timeout"
      },
      "dependencies": [
        "K1073"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Sinyal deadline ile aynı tick",
      "counterexample": "İki completion teslimi",
      "guestAcceptance": "Tek dönüş ve kuyrukta artık kayıt yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_timeout_positive",
        "negativeName": "os_thread_wait_timeout_negative",
        "expectedMarker": "TURKOS/OS/K1075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki completion teslimi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki completion teslimi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1074"
    },
    {
      "id": "K1075",
      "number": 1075,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.timeout",
      "stage": "integration",
      "title": "Bekleme süre aşımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Sonuç ve timeout yalnız bir kazanan üretir.",
      "action": "Tek ürün Image'ında “Tek dönüş ve kuyrukta artık kayıt yok” kabulünü koştur. scripts/os-acceptance/thread_wait.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Sonuç ve timeout yalnız bir kazanan üretir",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_timeout"
      },
      "dependencies": [
        "K1074"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Sinyal deadline ile aynı tick",
      "counterexample": "İki completion teslimi",
      "guestAcceptance": "Tek dönüş ve kuyrukta artık kayıt yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_timeout_positive",
        "negativeName": "os_thread_wait_timeout_negative",
        "expectedMarker": "TURKOS/OS/K1075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek dönüş ve kuyrukta artık kayıt yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki completion teslimi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1075"
    },
    {
      "id": "K1076",
      "number": 1076,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.cancel",
      "stage": "contract",
      "title": "Beklemeyi task iptalinde sökme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İptal bekleme kaynaklarını bırakır.",
      "action": "“Beklemeyi task iptalinde sökme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İptal bekleme kaynaklarını bırakır. “İki waitten biri iptal” kabulü ile “Ölü task wake callbacki” reddini aynı sözleşmeye bağla.",
      "invariant": "İptal bekleme kaynaklarını bırakır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_cancel"
      },
      "dependencies": [
        "K1075"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki waitten biri iptal",
      "counterexample": "Ölü task wake callbacki",
      "guestAcceptance": "Diğer waiter doğru ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_cancel_positive",
        "negativeName": "os_thread_wait_cancel_negative",
        "expectedMarker": "TURKOS/OS/K1080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İptal bekleme kaynaklarını bırakır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ölü task wake callbacki” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1076"
    },
    {
      "id": "K1077",
      "number": 1077,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.cancel",
      "stage": "implementation",
      "title": "Beklemeyi task iptalinde sökme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İptal bekleme kaynaklarını bırakır.",
      "action": "kernel/src/runtime/thread_wait.rs hedefinde os_thread_wait_cancel yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İptal bekleme kaynaklarını bırakır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_cancel"
      },
      "dependencies": [
        "K1076"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki waitten biri iptal",
      "counterexample": "Ölü task wake callbacki",
      "guestAcceptance": "Diğer waiter doğru ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_cancel_positive",
        "negativeName": "os_thread_wait_cancel_negative",
        "expectedMarker": "TURKOS/OS/K1080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki waitten biri iptal ile Ölü task wake callbacki ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ölü task wake callbacki” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1077"
    },
    {
      "id": "K1078",
      "number": 1078,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.cancel",
      "stage": "positive",
      "title": "Beklemeyi task iptalinde sökme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İptal bekleme kaynaklarını bırakır.",
      "action": "os_thread_wait_cancel_positive testini oluştur: “İki waitten biri iptal”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İptal bekleme kaynaklarını bırakır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_cancel"
      },
      "dependencies": [
        "K1077"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki waitten biri iptal",
      "counterexample": "Ölü task wake callbacki",
      "guestAcceptance": "Diğer waiter doğru ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_cancel_positive",
        "negativeName": "os_thread_wait_cancel_negative",
        "expectedMarker": "TURKOS/OS/K1080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki waitten biri iptal girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ölü task wake callbacki” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1078"
    },
    {
      "id": "K1079",
      "number": 1079,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.cancel",
      "stage": "negative",
      "title": "Beklemeyi task iptalinde sökme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İptal bekleme kaynaklarını bırakır.",
      "action": "os_thread_wait_cancel_negative testini oluştur: “Ölü task wake callbacki”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İptal bekleme kaynaklarını bırakır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_cancel"
      },
      "dependencies": [
        "K1078"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki waitten biri iptal",
      "counterexample": "Ölü task wake callbacki",
      "guestAcceptance": "Diğer waiter doğru ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_cancel_positive",
        "negativeName": "os_thread_wait_cancel_negative",
        "expectedMarker": "TURKOS/OS/K1080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ölü task wake callbacki karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ölü task wake callbacki” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1079"
    },
    {
      "id": "K1080",
      "number": 1080,
      "phase": 5,
      "module": "thread_wait",
      "feature": "thread_wait.cancel",
      "stage": "integration",
      "title": "Beklemeyi task iptalinde sökme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İptal bekleme kaynaklarını bırakır.",
      "action": "Tek ürün Image'ında “Diğer waiter doğru ilerler” kabulünü koştur. scripts/os-acceptance/thread_wait.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İptal bekleme kaynaklarını bırakır",
      "source": {
        "target": "kernel/src/runtime/thread_wait.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_thread_wait_cancel"
      },
      "dependencies": [
        "K1079"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "İki waitten biri iptal",
      "counterexample": "Ölü task wake callbacki",
      "guestAcceptance": "Diğer waiter doğru ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/thread_wait.rs",
        "harness": "scripts/os-acceptance/thread_wait.mjs",
        "positiveName": "os_thread_wait_cancel_positive",
        "negativeName": "os_thread_wait_cancel_negative",
        "expectedMarker": "TURKOS/OS/K1080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Diğer waiter doğru ilerler; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ölü task wake callbacki” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1080"
    },
    {
      "id": "K1081",
      "number": 1081,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.fairness",
      "stage": "contract",
      "title": "Ölçülen görev adaleti · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İlerleme dağılımı kayıtlı ve sınırlıdır.",
      "action": "“Ölçülen görev adaleti” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İlerleme dağılımı kayıtlı ve sınırlıdır. “Üç görev on bin dilim” kabulü ile “Bir thread sürekli yeniden enqueue” reddini aynı sözleşmeye bağla.",
      "invariant": "İlerleme dağılımı kayıtlı ve sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_fairness"
      },
      "dependencies": [
        "K1080"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç görev on bin dilim",
      "counterexample": "Bir thread sürekli yeniden enqueue",
      "guestAcceptance": "Her canlı görev ilerleme üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_fairness_positive",
        "negativeName": "os_scheduler_policy_fairness_negative",
        "expectedMarker": "TURKOS/OS/K1085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İlerleme dağılımı kayıtlı ve sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir thread sürekli yeniden enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1081"
    },
    {
      "id": "K1082",
      "number": 1082,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.fairness",
      "stage": "implementation",
      "title": "Ölçülen görev adaleti · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İlerleme dağılımı kayıtlı ve sınırlıdır.",
      "action": "kernel/src/runtime/scheduler_policy.rs hedefinde os_scheduler_policy_fairness yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İlerleme dağılımı kayıtlı ve sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_fairness"
      },
      "dependencies": [
        "K1081"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç görev on bin dilim",
      "counterexample": "Bir thread sürekli yeniden enqueue",
      "guestAcceptance": "Her canlı görev ilerleme üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_fairness_positive",
        "negativeName": "os_scheduler_policy_fairness_negative",
        "expectedMarker": "TURKOS/OS/K1085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç görev on bin dilim ile Bir thread sürekli yeniden enqueue ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir thread sürekli yeniden enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1082"
    },
    {
      "id": "K1083",
      "number": 1083,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.fairness",
      "stage": "positive",
      "title": "Ölçülen görev adaleti · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İlerleme dağılımı kayıtlı ve sınırlıdır.",
      "action": "os_scheduler_policy_fairness_positive testini oluştur: “Üç görev on bin dilim”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İlerleme dağılımı kayıtlı ve sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_fairness"
      },
      "dependencies": [
        "K1082"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç görev on bin dilim",
      "counterexample": "Bir thread sürekli yeniden enqueue",
      "guestAcceptance": "Her canlı görev ilerleme üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_fairness_positive",
        "negativeName": "os_scheduler_policy_fairness_negative",
        "expectedMarker": "TURKOS/OS/K1085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç görev on bin dilim girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir thread sürekli yeniden enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1083"
    },
    {
      "id": "K1084",
      "number": 1084,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.fairness",
      "stage": "negative",
      "title": "Ölçülen görev adaleti · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İlerleme dağılımı kayıtlı ve sınırlıdır.",
      "action": "os_scheduler_policy_fairness_negative testini oluştur: “Bir thread sürekli yeniden enqueue”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İlerleme dağılımı kayıtlı ve sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_fairness"
      },
      "dependencies": [
        "K1083"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç görev on bin dilim",
      "counterexample": "Bir thread sürekli yeniden enqueue",
      "guestAcceptance": "Her canlı görev ilerleme üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_fairness_positive",
        "negativeName": "os_scheduler_policy_fairness_negative",
        "expectedMarker": "TURKOS/OS/K1085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir thread sürekli yeniden enqueue karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir thread sürekli yeniden enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1084"
    },
    {
      "id": "K1085",
      "number": 1085,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.fairness",
      "stage": "integration",
      "title": "Ölçülen görev adaleti · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: İlerleme dağılımı kayıtlı ve sınırlıdır.",
      "action": "Tek ürün Image'ında “Her canlı görev ilerleme üretir” kabulünü koştur. scripts/os-acceptance/scheduler_policy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İlerleme dağılımı kayıtlı ve sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_fairness"
      },
      "dependencies": [
        "K1084"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Üç görev on bin dilim",
      "counterexample": "Bir thread sürekli yeniden enqueue",
      "guestAcceptance": "Her canlı görev ilerleme üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_fairness_positive",
        "negativeName": "os_scheduler_policy_fairness_negative",
        "expectedMarker": "TURKOS/OS/K1085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her canlı görev ilerleme üretir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir thread sürekli yeniden enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1085"
    },
    {
      "id": "K1086",
      "number": 1086,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.inversion",
      "stage": "contract",
      "title": "Öncelik terslenmesi tanısı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Bekleyen yüksek öncelik görünür kalır.",
      "action": "“Öncelik terslenmesi tanısı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bekleyen yüksek öncelik görünür kalır. “Düşük sahip yüksek waiter” kabulü ile “Sahip uyurken busy loop” reddini aynı sözleşmeye bağla.",
      "invariant": "Bekleyen yüksek öncelik görünür kalır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_inversion"
      },
      "dependencies": [
        "K1085"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Düşük sahip yüksek waiter",
      "counterexample": "Sahip uyurken busy loop",
      "guestAcceptance": "Gecikme ve sahip zinciri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_inversion_positive",
        "negativeName": "os_scheduler_policy_inversion_negative",
        "expectedMarker": "TURKOS/OS/K1090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bekleyen yüksek öncelik görünür kalır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sahip uyurken busy loop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1086"
    },
    {
      "id": "K1087",
      "number": 1087,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.inversion",
      "stage": "implementation",
      "title": "Öncelik terslenmesi tanısı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Bekleyen yüksek öncelik görünür kalır.",
      "action": "kernel/src/runtime/scheduler_policy.rs hedefinde os_scheduler_policy_inversion yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bekleyen yüksek öncelik görünür kalır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_inversion"
      },
      "dependencies": [
        "K1086"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Düşük sahip yüksek waiter",
      "counterexample": "Sahip uyurken busy loop",
      "guestAcceptance": "Gecikme ve sahip zinciri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_inversion_positive",
        "negativeName": "os_scheduler_policy_inversion_negative",
        "expectedMarker": "TURKOS/OS/K1090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Düşük sahip yüksek waiter ile Sahip uyurken busy loop ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sahip uyurken busy loop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1087"
    },
    {
      "id": "K1088",
      "number": 1088,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.inversion",
      "stage": "positive",
      "title": "Öncelik terslenmesi tanısı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Bekleyen yüksek öncelik görünür kalır.",
      "action": "os_scheduler_policy_inversion_positive testini oluştur: “Düşük sahip yüksek waiter”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bekleyen yüksek öncelik görünür kalır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_inversion"
      },
      "dependencies": [
        "K1087"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Düşük sahip yüksek waiter",
      "counterexample": "Sahip uyurken busy loop",
      "guestAcceptance": "Gecikme ve sahip zinciri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_inversion_positive",
        "negativeName": "os_scheduler_policy_inversion_negative",
        "expectedMarker": "TURKOS/OS/K1090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Düşük sahip yüksek waiter girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sahip uyurken busy loop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1088"
    },
    {
      "id": "K1089",
      "number": 1089,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.inversion",
      "stage": "negative",
      "title": "Öncelik terslenmesi tanısı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Bekleyen yüksek öncelik görünür kalır.",
      "action": "os_scheduler_policy_inversion_negative testini oluştur: “Sahip uyurken busy loop”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bekleyen yüksek öncelik görünür kalır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_inversion"
      },
      "dependencies": [
        "K1088"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Düşük sahip yüksek waiter",
      "counterexample": "Sahip uyurken busy loop",
      "guestAcceptance": "Gecikme ve sahip zinciri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_inversion_positive",
        "negativeName": "os_scheduler_policy_inversion_negative",
        "expectedMarker": "TURKOS/OS/K1090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sahip uyurken busy loop karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sahip uyurken busy loop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1089"
    },
    {
      "id": "K1090",
      "number": 1090,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.inversion",
      "stage": "integration",
      "title": "Öncelik terslenmesi tanısı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Bekleyen yüksek öncelik görünür kalır.",
      "action": "Tek ürün Image'ında “Gecikme ve sahip zinciri raporlanır” kabulünü koştur. scripts/os-acceptance/scheduler_policy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bekleyen yüksek öncelik görünür kalır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_inversion"
      },
      "dependencies": [
        "K1089"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Düşük sahip yüksek waiter",
      "counterexample": "Sahip uyurken busy loop",
      "guestAcceptance": "Gecikme ve sahip zinciri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_inversion_positive",
        "negativeName": "os_scheduler_policy_inversion_negative",
        "expectedMarker": "TURKOS/OS/K1090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Gecikme ve sahip zinciri raporlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sahip uyurken busy loop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1090"
    },
    {
      "id": "K1091",
      "number": 1091,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.accounting",
      "stage": "contract",
      "title": "CPU ve uyku hesapları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Running Sleeping Idle ayrı sayılır.",
      "action": "“CPU ve uyku hesapları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Running Sleeping Idle ayrı sayılır. “Uyuyan ve yoğun görev” kabulü ile “Aynı tick iki sınıfa yazılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Running Sleeping Idle ayrı sayılır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_accounting"
      },
      "dependencies": [
        "K1090"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Uyuyan ve yoğun görev",
      "counterexample": "Aynı tick iki sınıfa yazılır",
      "guestAcceptance": "Toplam tick zaman çizgisine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_accounting_positive",
        "negativeName": "os_scheduler_policy_accounting_negative",
        "expectedMarker": "TURKOS/OS/K1095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Running Sleeping Idle ayrı sayılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Aynı tick iki sınıfa yazılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1091"
    },
    {
      "id": "K1092",
      "number": 1092,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.accounting",
      "stage": "implementation",
      "title": "CPU ve uyku hesapları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Running Sleeping Idle ayrı sayılır.",
      "action": "kernel/src/runtime/scheduler_policy.rs hedefinde os_scheduler_policy_accounting yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Running Sleeping Idle ayrı sayılır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_accounting"
      },
      "dependencies": [
        "K1091"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Uyuyan ve yoğun görev",
      "counterexample": "Aynı tick iki sınıfa yazılır",
      "guestAcceptance": "Toplam tick zaman çizgisine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_accounting_positive",
        "negativeName": "os_scheduler_policy_accounting_negative",
        "expectedMarker": "TURKOS/OS/K1095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Uyuyan ve yoğun görev ile Aynı tick iki sınıfa yazılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Aynı tick iki sınıfa yazılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1092"
    },
    {
      "id": "K1093",
      "number": 1093,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.accounting",
      "stage": "positive",
      "title": "CPU ve uyku hesapları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Running Sleeping Idle ayrı sayılır.",
      "action": "os_scheduler_policy_accounting_positive testini oluştur: “Uyuyan ve yoğun görev”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Running Sleeping Idle ayrı sayılır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_accounting"
      },
      "dependencies": [
        "K1092"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Uyuyan ve yoğun görev",
      "counterexample": "Aynı tick iki sınıfa yazılır",
      "guestAcceptance": "Toplam tick zaman çizgisine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_accounting_positive",
        "negativeName": "os_scheduler_policy_accounting_negative",
        "expectedMarker": "TURKOS/OS/K1095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Uyuyan ve yoğun görev girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Aynı tick iki sınıfa yazılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1093"
    },
    {
      "id": "K1094",
      "number": 1094,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.accounting",
      "stage": "negative",
      "title": "CPU ve uyku hesapları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Running Sleeping Idle ayrı sayılır.",
      "action": "os_scheduler_policy_accounting_negative testini oluştur: “Aynı tick iki sınıfa yazılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Running Sleeping Idle ayrı sayılır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_accounting"
      },
      "dependencies": [
        "K1093"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Uyuyan ve yoğun görev",
      "counterexample": "Aynı tick iki sınıfa yazılır",
      "guestAcceptance": "Toplam tick zaman çizgisine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_accounting_positive",
        "negativeName": "os_scheduler_policy_accounting_negative",
        "expectedMarker": "TURKOS/OS/K1095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aynı tick iki sınıfa yazılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Aynı tick iki sınıfa yazılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1094"
    },
    {
      "id": "K1095",
      "number": 1095,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.accounting",
      "stage": "integration",
      "title": "CPU ve uyku hesapları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Running Sleeping Idle ayrı sayılır.",
      "action": "Tek ürün Image'ında “Toplam tick zaman çizgisine eşit” kabulünü koştur. scripts/os-acceptance/scheduler_policy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Running Sleeping Idle ayrı sayılır",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_accounting"
      },
      "dependencies": [
        "K1094"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Uyuyan ve yoğun görev",
      "counterexample": "Aynı tick iki sınıfa yazılır",
      "guestAcceptance": "Toplam tick zaman çizgisine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_accounting_positive",
        "negativeName": "os_scheduler_policy_accounting_negative",
        "expectedMarker": "TURKOS/OS/K1095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Toplam tick zaman çizgisine eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Aynı tick iki sınıfa yazılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1095"
    },
    {
      "id": "K1096",
      "number": 1096,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.long_run",
      "stage": "contract",
      "title": "Scheduler uzun koşu kapısı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Uzun yükte stack ve frame kaçmaz.",
      "action": "“Scheduler uzun koşu kapısı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Uzun yükte stack ve frame kaçmaz. “Bir saatlik kontrollü workload” kabulü ile “Geç nesil wake fırtınası” reddini aynı sözleşmeye bağla.",
      "invariant": "Uzun yükte stack ve frame kaçmaz",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_long_run"
      },
      "dependencies": [
        "K1095"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Bir saatlik kontrollü workload",
      "counterexample": "Geç nesil wake fırtınası",
      "guestAcceptance": "Sayaçlar ve kanaryalar aralıklarla eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_long_run_positive",
        "negativeName": "os_scheduler_policy_long_run_negative",
        "expectedMarker": "TURKOS/OS/K1100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Uzun yükte stack ve frame kaçmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Geç nesil wake fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1096"
    },
    {
      "id": "K1097",
      "number": 1097,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.long_run",
      "stage": "implementation",
      "title": "Scheduler uzun koşu kapısı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Uzun yükte stack ve frame kaçmaz.",
      "action": "kernel/src/runtime/scheduler_policy.rs hedefinde os_scheduler_policy_long_run yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Uzun yükte stack ve frame kaçmaz",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_long_run"
      },
      "dependencies": [
        "K1096"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Bir saatlik kontrollü workload",
      "counterexample": "Geç nesil wake fırtınası",
      "guestAcceptance": "Sayaçlar ve kanaryalar aralıklarla eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_long_run_positive",
        "negativeName": "os_scheduler_policy_long_run_negative",
        "expectedMarker": "TURKOS/OS/K1100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir saatlik kontrollü workload ile Geç nesil wake fırtınası ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Geç nesil wake fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1097"
    },
    {
      "id": "K1098",
      "number": 1098,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.long_run",
      "stage": "positive",
      "title": "Scheduler uzun koşu kapısı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Uzun yükte stack ve frame kaçmaz.",
      "action": "os_scheduler_policy_long_run_positive testini oluştur: “Bir saatlik kontrollü workload”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Uzun yükte stack ve frame kaçmaz",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_long_run"
      },
      "dependencies": [
        "K1097"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Bir saatlik kontrollü workload",
      "counterexample": "Geç nesil wake fırtınası",
      "guestAcceptance": "Sayaçlar ve kanaryalar aralıklarla eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_long_run_positive",
        "negativeName": "os_scheduler_policy_long_run_negative",
        "expectedMarker": "TURKOS/OS/K1100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir saatlik kontrollü workload girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Geç nesil wake fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1098"
    },
    {
      "id": "K1099",
      "number": 1099,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.long_run",
      "stage": "negative",
      "title": "Scheduler uzun koşu kapısı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Uzun yükte stack ve frame kaçmaz.",
      "action": "os_scheduler_policy_long_run_negative testini oluştur: “Geç nesil wake fırtınası”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Uzun yükte stack ve frame kaçmaz",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_long_run"
      },
      "dependencies": [
        "K1098"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Bir saatlik kontrollü workload",
      "counterexample": "Geç nesil wake fırtınası",
      "guestAcceptance": "Sayaçlar ve kanaryalar aralıklarla eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_long_run_positive",
        "negativeName": "os_scheduler_policy_long_run_negative",
        "expectedMarker": "TURKOS/OS/K1100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Geç nesil wake fırtınası karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Geç nesil wake fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1099"
    },
    {
      "id": "K1100",
      "number": 1100,
      "phase": 5,
      "module": "scheduler_policy",
      "feature": "scheduler_policy.long_run",
      "stage": "integration",
      "title": "Scheduler uzun koşu kapısı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit görev yerine bağımsız kernel threadleri ve güvenli preemption ürün runtimeına bağlanır. Bu hamlenin koruduğu değişmez: Uzun yükte stack ve frame kaçmaz.",
      "action": "Tek ürün Image'ında “Sayaçlar ve kanaryalar aralıklarla eşit” kabulünü koştur. scripts/os-acceptance/scheduler_policy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Uzun yükte stack ve frame kaçmaz",
      "source": {
        "target": "kernel/src/runtime/scheduler_policy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_scheduler_policy_long_run"
      },
      "dependencies": [
        "K1099"
      ],
      "phasePrerequisites": [
        4
      ],
      "positive": "Bir saatlik kontrollü workload",
      "counterexample": "Geç nesil wake fırtınası",
      "guestAcceptance": "Sayaçlar ve kanaryalar aralıklarla eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/scheduler_policy.rs",
        "harness": "scripts/os-acceptance/scheduler_policy.mjs",
        "positiveName": "os_scheduler_policy_long_run_positive",
        "negativeName": "os_scheduler_policy_long_run_negative",
        "expectedMarker": "TURKOS/OS/K1100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sayaçlar ve kanaryalar aralıklarla eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Geç nesil wake fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-05#k1100"
    },
    {
      "id": "K1101",
      "number": 1101,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.pid",
      "stage": "contract",
      "title": "PID ve nesil tablosu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: PID yeniden kullanımda nesil değişir.",
      "action": "“PID ve nesil tablosu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: PID yeniden kullanımda nesil değişir. “Üç süreç aynı boş slotu kullanır” kabulü ile “Eski PID kill talebi” reddini aynı sözleşmeye bağla.",
      "invariant": "PID yeniden kullanımda nesil değişir",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_pid"
      },
      "dependencies": [],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç aynı boş slotu kullanır",
      "counterexample": "Eski PID kill talebi",
      "guestAcceptance": "Yeni süreç eski isteği reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_pid_positive",
        "negativeName": "os_process_table_pid_negative",
        "expectedMarker": "TURKOS/OS/K1105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu PID yeniden kullanımda nesil değişir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski PID kill talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1101"
    },
    {
      "id": "K1102",
      "number": 1102,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.pid",
      "stage": "implementation",
      "title": "PID ve nesil tablosu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: PID yeniden kullanımda nesil değişir.",
      "action": "kernel/src/runtime/process_table.rs hedefinde os_process_table_pid yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "PID yeniden kullanımda nesil değişir",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_pid"
      },
      "dependencies": [
        "K1101"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç aynı boş slotu kullanır",
      "counterexample": "Eski PID kill talebi",
      "guestAcceptance": "Yeni süreç eski isteği reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_pid_positive",
        "negativeName": "os_process_table_pid_negative",
        "expectedMarker": "TURKOS/OS/K1105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç süreç aynı boş slotu kullanır ile Eski PID kill talebi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski PID kill talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1102"
    },
    {
      "id": "K1103",
      "number": 1103,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.pid",
      "stage": "positive",
      "title": "PID ve nesil tablosu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: PID yeniden kullanımda nesil değişir.",
      "action": "os_process_table_pid_positive testini oluştur: “Üç süreç aynı boş slotu kullanır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "PID yeniden kullanımda nesil değişir",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_pid"
      },
      "dependencies": [
        "K1102"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç aynı boş slotu kullanır",
      "counterexample": "Eski PID kill talebi",
      "guestAcceptance": "Yeni süreç eski isteği reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_pid_positive",
        "negativeName": "os_process_table_pid_negative",
        "expectedMarker": "TURKOS/OS/K1105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç süreç aynı boş slotu kullanır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski PID kill talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1103"
    },
    {
      "id": "K1104",
      "number": 1104,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.pid",
      "stage": "negative",
      "title": "PID ve nesil tablosu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: PID yeniden kullanımda nesil değişir.",
      "action": "os_process_table_pid_negative testini oluştur: “Eski PID kill talebi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "PID yeniden kullanımda nesil değişir",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_pid"
      },
      "dependencies": [
        "K1103"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç aynı boş slotu kullanır",
      "counterexample": "Eski PID kill talebi",
      "guestAcceptance": "Yeni süreç eski isteği reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_pid_positive",
        "negativeName": "os_process_table_pid_negative",
        "expectedMarker": "TURKOS/OS/K1105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski PID kill talebi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski PID kill talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1104"
    },
    {
      "id": "K1105",
      "number": 1105,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.pid",
      "stage": "integration",
      "title": "PID ve nesil tablosu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: PID yeniden kullanımda nesil değişir.",
      "action": "Tek ürün Image'ında “Yeni süreç eski isteği reddeder” kabulünü koştur. scripts/os-acceptance/process_table.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "PID yeniden kullanımda nesil değişir",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_pid"
      },
      "dependencies": [
        "K1104"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç aynı boş slotu kullanır",
      "counterexample": "Eski PID kill talebi",
      "guestAcceptance": "Yeni süreç eski isteği reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_pid_positive",
        "negativeName": "os_process_table_pid_negative",
        "expectedMarker": "TURKOS/OS/K1105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni süreç eski isteği reddeder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski PID kill talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1105"
    },
    {
      "id": "K1106",
      "number": 1106,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.parent",
      "stage": "contract",
      "title": "Ebeveyn çocuk bağı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk bağı tam kimliğe bağlıdır.",
      "action": "“Ebeveyn çocuk bağı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Çocuk bağı tam kimliğe bağlıdır. “A iki çocuk oluşturur” kabulü ile “Yabancı ebeveyn wait” reddini aynı sözleşmeye bağla.",
      "invariant": "Çocuk bağı tam kimliğe bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_parent"
      },
      "dependencies": [
        "K1105"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "A iki çocuk oluşturur",
      "counterexample": "Yabancı ebeveyn wait",
      "guestAcceptance": "Yalnız sahibi çıkış kodunu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_parent_positive",
        "negativeName": "os_process_table_parent_negative",
        "expectedMarker": "TURKOS/OS/K1110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Çocuk bağı tam kimliğe bağlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı ebeveyn wait” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1106"
    },
    {
      "id": "K1107",
      "number": 1107,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.parent",
      "stage": "implementation",
      "title": "Ebeveyn çocuk bağı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk bağı tam kimliğe bağlıdır.",
      "action": "kernel/src/runtime/process_table.rs hedefinde os_process_table_parent yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Çocuk bağı tam kimliğe bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_parent"
      },
      "dependencies": [
        "K1106"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "A iki çocuk oluşturur",
      "counterexample": "Yabancı ebeveyn wait",
      "guestAcceptance": "Yalnız sahibi çıkış kodunu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_parent_positive",
        "negativeName": "os_process_table_parent_negative",
        "expectedMarker": "TURKOS/OS/K1110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. A iki çocuk oluşturur ile Yabancı ebeveyn wait ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı ebeveyn wait” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1107"
    },
    {
      "id": "K1108",
      "number": 1108,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.parent",
      "stage": "positive",
      "title": "Ebeveyn çocuk bağı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk bağı tam kimliğe bağlıdır.",
      "action": "os_process_table_parent_positive testini oluştur: “A iki çocuk oluşturur”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Çocuk bağı tam kimliğe bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_parent"
      },
      "dependencies": [
        "K1107"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "A iki çocuk oluşturur",
      "counterexample": "Yabancı ebeveyn wait",
      "guestAcceptance": "Yalnız sahibi çıkış kodunu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_parent_positive",
        "negativeName": "os_process_table_parent_negative",
        "expectedMarker": "TURKOS/OS/K1110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; A iki çocuk oluşturur girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı ebeveyn wait” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1108"
    },
    {
      "id": "K1109",
      "number": 1109,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.parent",
      "stage": "negative",
      "title": "Ebeveyn çocuk bağı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk bağı tam kimliğe bağlıdır.",
      "action": "os_process_table_parent_negative testini oluştur: “Yabancı ebeveyn wait”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Çocuk bağı tam kimliğe bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_parent"
      },
      "dependencies": [
        "K1108"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "A iki çocuk oluşturur",
      "counterexample": "Yabancı ebeveyn wait",
      "guestAcceptance": "Yalnız sahibi çıkış kodunu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_parent_positive",
        "negativeName": "os_process_table_parent_negative",
        "expectedMarker": "TURKOS/OS/K1110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı ebeveyn wait karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı ebeveyn wait” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1109"
    },
    {
      "id": "K1110",
      "number": 1110,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.parent",
      "stage": "integration",
      "title": "Ebeveyn çocuk bağı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk bağı tam kimliğe bağlıdır.",
      "action": "Tek ürün Image'ında “Yalnız sahibi çıkış kodunu alır” kabulünü koştur. scripts/os-acceptance/process_table.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Çocuk bağı tam kimliğe bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_parent"
      },
      "dependencies": [
        "K1109"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "A iki çocuk oluşturur",
      "counterexample": "Yabancı ebeveyn wait",
      "guestAcceptance": "Yalnız sahibi çıkış kodunu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_parent_positive",
        "negativeName": "os_process_table_parent_negative",
        "expectedMarker": "TURKOS/OS/K1110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yalnız sahibi çıkış kodunu alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı ebeveyn wait” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1110"
    },
    {
      "id": "K1111",
      "number": 1111,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.resources",
      "stage": "contract",
      "title": "Süreç kaynak torbası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Thread map handle süreç sahibine bağlıdır.",
      "action": "“Süreç kaynak torbası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Thread map handle süreç sahibine bağlıdır. “İki adres alanı ve üç handle” kabulü ile “Kaynak ortada tükenir” reddini aynı sözleşmeye bağla.",
      "invariant": "Thread map handle süreç sahibine bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_resources"
      },
      "dependencies": [
        "K1110"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki adres alanı ve üç handle",
      "counterexample": "Kaynak ortada tükenir",
      "guestAcceptance": "Oluşturma atomik geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_resources_positive",
        "negativeName": "os_process_table_resources_negative",
        "expectedMarker": "TURKOS/OS/K1115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Thread map handle süreç sahibine bağlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kaynak ortada tükenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1111"
    },
    {
      "id": "K1112",
      "number": 1112,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.resources",
      "stage": "implementation",
      "title": "Süreç kaynak torbası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Thread map handle süreç sahibine bağlıdır.",
      "action": "kernel/src/runtime/process_table.rs hedefinde os_process_table_resources yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Thread map handle süreç sahibine bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_resources"
      },
      "dependencies": [
        "K1111"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki adres alanı ve üç handle",
      "counterexample": "Kaynak ortada tükenir",
      "guestAcceptance": "Oluşturma atomik geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_resources_positive",
        "negativeName": "os_process_table_resources_negative",
        "expectedMarker": "TURKOS/OS/K1115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki adres alanı ve üç handle ile Kaynak ortada tükenir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kaynak ortada tükenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1112"
    },
    {
      "id": "K1113",
      "number": 1113,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.resources",
      "stage": "positive",
      "title": "Süreç kaynak torbası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Thread map handle süreç sahibine bağlıdır.",
      "action": "os_process_table_resources_positive testini oluştur: “İki adres alanı ve üç handle”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Thread map handle süreç sahibine bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_resources"
      },
      "dependencies": [
        "K1112"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki adres alanı ve üç handle",
      "counterexample": "Kaynak ortada tükenir",
      "guestAcceptance": "Oluşturma atomik geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_resources_positive",
        "negativeName": "os_process_table_resources_negative",
        "expectedMarker": "TURKOS/OS/K1115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki adres alanı ve üç handle girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kaynak ortada tükenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1113"
    },
    {
      "id": "K1114",
      "number": 1114,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.resources",
      "stage": "negative",
      "title": "Süreç kaynak torbası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Thread map handle süreç sahibine bağlıdır.",
      "action": "os_process_table_resources_negative testini oluştur: “Kaynak ortada tükenir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Thread map handle süreç sahibine bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_resources"
      },
      "dependencies": [
        "K1113"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki adres alanı ve üç handle",
      "counterexample": "Kaynak ortada tükenir",
      "guestAcceptance": "Oluşturma atomik geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_resources_positive",
        "negativeName": "os_process_table_resources_negative",
        "expectedMarker": "TURKOS/OS/K1115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kaynak ortada tükenir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kaynak ortada tükenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1114"
    },
    {
      "id": "K1115",
      "number": 1115,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.resources",
      "stage": "integration",
      "title": "Süreç kaynak torbası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Thread map handle süreç sahibine bağlıdır.",
      "action": "Tek ürün Image'ında “Oluşturma atomik geri alınır” kabulünü koştur. scripts/os-acceptance/process_table.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Thread map handle süreç sahibine bağlıdır",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_resources"
      },
      "dependencies": [
        "K1114"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki adres alanı ve üç handle",
      "counterexample": "Kaynak ortada tükenir",
      "guestAcceptance": "Oluşturma atomik geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_resources_positive",
        "negativeName": "os_process_table_resources_negative",
        "expectedMarker": "TURKOS/OS/K1115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Oluşturma atomik geri alınır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kaynak ortada tükenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1115"
    },
    {
      "id": "K1116",
      "number": 1116,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.publish",
      "stage": "contract",
      "title": "Süreç atomik yayımlama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hazırlanmamış süreç runnable olmaz.",
      "action": "“Süreç atomik yayımlama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hazırlanmamış süreç runnable olmaz. “İmaj ve stack tamamlanır” kabulü ile “Stack kurmadan enqueue” reddini aynı sözleşmeye bağla.",
      "invariant": "Hazırlanmamış süreç runnable olmaz",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_publish"
      },
      "dependencies": [
        "K1115"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İmaj ve stack tamamlanır",
      "counterexample": "Stack kurmadan enqueue",
      "guestAcceptance": "Başarısız PID hiçbir listede yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_publish_positive",
        "negativeName": "os_process_table_publish_negative",
        "expectedMarker": "TURKOS/OS/K1120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hazırlanmamış süreç runnable olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Stack kurmadan enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1116"
    },
    {
      "id": "K1117",
      "number": 1117,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.publish",
      "stage": "implementation",
      "title": "Süreç atomik yayımlama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hazırlanmamış süreç runnable olmaz.",
      "action": "kernel/src/runtime/process_table.rs hedefinde os_process_table_publish yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hazırlanmamış süreç runnable olmaz",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_publish"
      },
      "dependencies": [
        "K1116"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İmaj ve stack tamamlanır",
      "counterexample": "Stack kurmadan enqueue",
      "guestAcceptance": "Başarısız PID hiçbir listede yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_publish_positive",
        "negativeName": "os_process_table_publish_negative",
        "expectedMarker": "TURKOS/OS/K1120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İmaj ve stack tamamlanır ile Stack kurmadan enqueue ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Stack kurmadan enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1117"
    },
    {
      "id": "K1118",
      "number": 1118,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.publish",
      "stage": "positive",
      "title": "Süreç atomik yayımlama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hazırlanmamış süreç runnable olmaz.",
      "action": "os_process_table_publish_positive testini oluştur: “İmaj ve stack tamamlanır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hazırlanmamış süreç runnable olmaz",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_publish"
      },
      "dependencies": [
        "K1117"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İmaj ve stack tamamlanır",
      "counterexample": "Stack kurmadan enqueue",
      "guestAcceptance": "Başarısız PID hiçbir listede yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_publish_positive",
        "negativeName": "os_process_table_publish_negative",
        "expectedMarker": "TURKOS/OS/K1120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İmaj ve stack tamamlanır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Stack kurmadan enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1118"
    },
    {
      "id": "K1119",
      "number": 1119,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.publish",
      "stage": "negative",
      "title": "Süreç atomik yayımlama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hazırlanmamış süreç runnable olmaz.",
      "action": "os_process_table_publish_negative testini oluştur: “Stack kurmadan enqueue”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hazırlanmamış süreç runnable olmaz",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_publish"
      },
      "dependencies": [
        "K1118"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İmaj ve stack tamamlanır",
      "counterexample": "Stack kurmadan enqueue",
      "guestAcceptance": "Başarısız PID hiçbir listede yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_publish_positive",
        "negativeName": "os_process_table_publish_negative",
        "expectedMarker": "TURKOS/OS/K1120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Stack kurmadan enqueue karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Stack kurmadan enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1119"
    },
    {
      "id": "K1120",
      "number": 1120,
      "phase": 6,
      "module": "process_table",
      "feature": "process_table.publish",
      "stage": "integration",
      "title": "Süreç atomik yayımlama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hazırlanmamış süreç runnable olmaz.",
      "action": "Tek ürün Image'ında “Başarısız PID hiçbir listede yok” kabulünü koştur. scripts/os-acceptance/process_table.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hazırlanmamış süreç runnable olmaz",
      "source": {
        "target": "kernel/src/runtime/process_table.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_process_table_publish"
      },
      "dependencies": [
        "K1119"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İmaj ve stack tamamlanır",
      "counterexample": "Stack kurmadan enqueue",
      "guestAcceptance": "Başarısız PID hiçbir listede yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_table.rs",
        "harness": "scripts/os-acceptance/process_table.mjs",
        "positiveName": "os_process_table_publish_positive",
        "negativeName": "os_process_table_publish_negative",
        "expectedMarker": "TURKOS/OS/K1120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başarısız PID hiçbir listede yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Stack kurmadan enqueue” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1120"
    },
    {
      "id": "K1121",
      "number": 1121,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.numbers",
      "stage": "contract",
      "title": "Syscall numara ve sürüm · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Bilinmeyen numara ENOSYS döndürür.",
      "action": "“Syscall numara ve sürüm” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bilinmeyen numara ENOSYS döndürür. “ABI V1 bilinen çağrı” kabulü ile “u64 maksimum syscall” reddini aynı sözleşmeye bağla.",
      "invariant": "Bilinmeyen numara ENOSYS döndürür",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_numbers"
      },
      "dependencies": [
        "K1120"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "ABI V1 bilinen çağrı",
      "counterexample": "u64 maksimum syscall",
      "guestAcceptance": "Ret sonrası EL0 çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_numbers_positive",
        "negativeName": "os_syscall_abi_numbers_negative",
        "expectedMarker": "TURKOS/OS/K1125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bilinmeyen numara ENOSYS döndürür kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“u64 maksimum syscall” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1121"
    },
    {
      "id": "K1122",
      "number": 1122,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.numbers",
      "stage": "implementation",
      "title": "Syscall numara ve sürüm · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Bilinmeyen numara ENOSYS döndürür.",
      "action": "kernel/src/runtime/syscall_abi.rs hedefinde os_syscall_abi_numbers yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/syscall.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bilinmeyen numara ENOSYS döndürür",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_numbers"
      },
      "dependencies": [
        "K1121"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "ABI V1 bilinen çağrı",
      "counterexample": "u64 maksimum syscall",
      "guestAcceptance": "Ret sonrası EL0 çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_numbers_positive",
        "negativeName": "os_syscall_abi_numbers_negative",
        "expectedMarker": "TURKOS/OS/K1125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. ABI V1 bilinen çağrı ile u64 maksimum syscall ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“u64 maksimum syscall” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1122"
    },
    {
      "id": "K1123",
      "number": 1123,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.numbers",
      "stage": "positive",
      "title": "Syscall numara ve sürüm · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Bilinmeyen numara ENOSYS döndürür.",
      "action": "os_syscall_abi_numbers_positive testini oluştur: “ABI V1 bilinen çağrı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bilinmeyen numara ENOSYS döndürür",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_numbers"
      },
      "dependencies": [
        "K1122"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "ABI V1 bilinen çağrı",
      "counterexample": "u64 maksimum syscall",
      "guestAcceptance": "Ret sonrası EL0 çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_numbers_positive",
        "negativeName": "os_syscall_abi_numbers_negative",
        "expectedMarker": "TURKOS/OS/K1125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; ABI V1 bilinen çağrı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“u64 maksimum syscall” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1123"
    },
    {
      "id": "K1124",
      "number": 1124,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.numbers",
      "stage": "negative",
      "title": "Syscall numara ve sürüm · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Bilinmeyen numara ENOSYS döndürür.",
      "action": "os_syscall_abi_numbers_negative testini oluştur: “u64 maksimum syscall”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bilinmeyen numara ENOSYS döndürür",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_numbers"
      },
      "dependencies": [
        "K1123"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "ABI V1 bilinen çağrı",
      "counterexample": "u64 maksimum syscall",
      "guestAcceptance": "Ret sonrası EL0 çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_numbers_positive",
        "negativeName": "os_syscall_abi_numbers_negative",
        "expectedMarker": "TURKOS/OS/K1125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "u64 maksimum syscall karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“u64 maksimum syscall” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1124"
    },
    {
      "id": "K1125",
      "number": 1125,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.numbers",
      "stage": "integration",
      "title": "Syscall numara ve sürüm · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Bilinmeyen numara ENOSYS döndürür.",
      "action": "Tek ürün Image'ında “Ret sonrası EL0 çalışmaya devam” kabulünü koştur. scripts/os-acceptance/syscall_abi.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bilinmeyen numara ENOSYS döndürür",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_numbers"
      },
      "dependencies": [
        "K1124"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "ABI V1 bilinen çağrı",
      "counterexample": "u64 maksimum syscall",
      "guestAcceptance": "Ret sonrası EL0 çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_numbers_positive",
        "negativeName": "os_syscall_abi_numbers_negative",
        "expectedMarker": "TURKOS/OS/K1125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sonrası EL0 çalışmaya devam; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“u64 maksimum syscall” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1125"
    },
    {
      "id": "K1126",
      "number": 1126,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.arguments",
      "stage": "contract",
      "title": "Kayıt argüman sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Argüman genişliği işareti açık belirtilir.",
      "action": "“Kayıt argüman sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Argüman genişliği işareti açık belirtilir. “Altı kayıt argümanı” kabulü ile “32 bit sayı üst bitleri” reddini aynı sözleşmeye bağla.",
      "invariant": "Argüman genişliği işareti açık belirtilir",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_arguments"
      },
      "dependencies": [
        "K1125"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Altı kayıt argümanı",
      "counterexample": "32 bit sayı üst bitleri",
      "guestAcceptance": "Kernel normalleştirilmiş değeri kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_arguments_positive",
        "negativeName": "os_syscall_abi_arguments_negative",
        "expectedMarker": "TURKOS/OS/K1130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Argüman genişliği işareti açık belirtilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“32 bit sayı üst bitleri” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1126"
    },
    {
      "id": "K1127",
      "number": 1127,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.arguments",
      "stage": "implementation",
      "title": "Kayıt argüman sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Argüman genişliği işareti açık belirtilir.",
      "action": "kernel/src/runtime/syscall_abi.rs hedefinde os_syscall_abi_arguments yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/syscall.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Argüman genişliği işareti açık belirtilir",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_arguments"
      },
      "dependencies": [
        "K1126"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Altı kayıt argümanı",
      "counterexample": "32 bit sayı üst bitleri",
      "guestAcceptance": "Kernel normalleştirilmiş değeri kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_arguments_positive",
        "negativeName": "os_syscall_abi_arguments_negative",
        "expectedMarker": "TURKOS/OS/K1130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Altı kayıt argümanı ile 32 bit sayı üst bitleri ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“32 bit sayı üst bitleri” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1127"
    },
    {
      "id": "K1128",
      "number": 1128,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.arguments",
      "stage": "positive",
      "title": "Kayıt argüman sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Argüman genişliği işareti açık belirtilir.",
      "action": "os_syscall_abi_arguments_positive testini oluştur: “Altı kayıt argümanı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Argüman genişliği işareti açık belirtilir",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_arguments"
      },
      "dependencies": [
        "K1127"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Altı kayıt argümanı",
      "counterexample": "32 bit sayı üst bitleri",
      "guestAcceptance": "Kernel normalleştirilmiş değeri kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_arguments_positive",
        "negativeName": "os_syscall_abi_arguments_negative",
        "expectedMarker": "TURKOS/OS/K1130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Altı kayıt argümanı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“32 bit sayı üst bitleri” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1128"
    },
    {
      "id": "K1129",
      "number": 1129,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.arguments",
      "stage": "negative",
      "title": "Kayıt argüman sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Argüman genişliği işareti açık belirtilir.",
      "action": "os_syscall_abi_arguments_negative testini oluştur: “32 bit sayı üst bitleri”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Argüman genişliği işareti açık belirtilir",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_arguments"
      },
      "dependencies": [
        "K1128"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Altı kayıt argümanı",
      "counterexample": "32 bit sayı üst bitleri",
      "guestAcceptance": "Kernel normalleştirilmiş değeri kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_arguments_positive",
        "negativeName": "os_syscall_abi_arguments_negative",
        "expectedMarker": "TURKOS/OS/K1130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "32 bit sayı üst bitleri karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“32 bit sayı üst bitleri” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1129"
    },
    {
      "id": "K1130",
      "number": 1130,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.arguments",
      "stage": "integration",
      "title": "Kayıt argüman sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Argüman genişliği işareti açık belirtilir.",
      "action": "Tek ürün Image'ında “Kernel normalleştirilmiş değeri kullanır” kabulünü koştur. scripts/os-acceptance/syscall_abi.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Argüman genişliği işareti açık belirtilir",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_arguments"
      },
      "dependencies": [
        "K1129"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Altı kayıt argümanı",
      "counterexample": "32 bit sayı üst bitleri",
      "guestAcceptance": "Kernel normalleştirilmiş değeri kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_arguments_positive",
        "negativeName": "os_syscall_abi_arguments_negative",
        "expectedMarker": "TURKOS/OS/K1130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel normalleştirilmiş değeri kullanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“32 bit sayı üst bitleri” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1130"
    },
    {
      "id": "K1131",
      "number": 1131,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.errors",
      "stage": "contract",
      "title": "Hata kodu ve sonuç tipi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hata pointer veya başarıyla karışmaz.",
      "action": "“Hata kodu ve sonuç tipi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hata pointer veya başarıyla karışmaz. “EBADF EFAULT ENOMEM” kabulü ile “Negatif hata unsigned uzunluk olur” reddini aynı sözleşmeye bağla.",
      "invariant": "Hata pointer veya başarıyla karışmaz",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_errors"
      },
      "dependencies": [
        "K1130"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EBADF EFAULT ENOMEM",
      "counterexample": "Negatif hata unsigned uzunluk olur",
      "guestAcceptance": "Kullanıcı wrapper doğru hata görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_errors_positive",
        "negativeName": "os_syscall_abi_errors_negative",
        "expectedMarker": "TURKOS/OS/K1135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hata pointer veya başarıyla karışmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Negatif hata unsigned uzunluk olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1131"
    },
    {
      "id": "K1132",
      "number": 1132,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.errors",
      "stage": "implementation",
      "title": "Hata kodu ve sonuç tipi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hata pointer veya başarıyla karışmaz.",
      "action": "kernel/src/runtime/syscall_abi.rs hedefinde os_syscall_abi_errors yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/syscall.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hata pointer veya başarıyla karışmaz",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_errors"
      },
      "dependencies": [
        "K1131"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EBADF EFAULT ENOMEM",
      "counterexample": "Negatif hata unsigned uzunluk olur",
      "guestAcceptance": "Kullanıcı wrapper doğru hata görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_errors_positive",
        "negativeName": "os_syscall_abi_errors_negative",
        "expectedMarker": "TURKOS/OS/K1135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. EBADF EFAULT ENOMEM ile Negatif hata unsigned uzunluk olur ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Negatif hata unsigned uzunluk olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1132"
    },
    {
      "id": "K1133",
      "number": 1133,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.errors",
      "stage": "positive",
      "title": "Hata kodu ve sonuç tipi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hata pointer veya başarıyla karışmaz.",
      "action": "os_syscall_abi_errors_positive testini oluştur: “EBADF EFAULT ENOMEM”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hata pointer veya başarıyla karışmaz",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_errors"
      },
      "dependencies": [
        "K1132"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EBADF EFAULT ENOMEM",
      "counterexample": "Negatif hata unsigned uzunluk olur",
      "guestAcceptance": "Kullanıcı wrapper doğru hata görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_errors_positive",
        "negativeName": "os_syscall_abi_errors_negative",
        "expectedMarker": "TURKOS/OS/K1135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; EBADF EFAULT ENOMEM girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Negatif hata unsigned uzunluk olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1133"
    },
    {
      "id": "K1134",
      "number": 1134,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.errors",
      "stage": "negative",
      "title": "Hata kodu ve sonuç tipi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hata pointer veya başarıyla karışmaz.",
      "action": "os_syscall_abi_errors_negative testini oluştur: “Negatif hata unsigned uzunluk olur”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hata pointer veya başarıyla karışmaz",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_errors"
      },
      "dependencies": [
        "K1133"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EBADF EFAULT ENOMEM",
      "counterexample": "Negatif hata unsigned uzunluk olur",
      "guestAcceptance": "Kullanıcı wrapper doğru hata görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_errors_positive",
        "negativeName": "os_syscall_abi_errors_negative",
        "expectedMarker": "TURKOS/OS/K1135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Negatif hata unsigned uzunluk olur karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Negatif hata unsigned uzunluk olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1134"
    },
    {
      "id": "K1135",
      "number": 1135,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.errors",
      "stage": "integration",
      "title": "Hata kodu ve sonuç tipi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Hata pointer veya başarıyla karışmaz.",
      "action": "Tek ürün Image'ında “Kullanıcı wrapper doğru hata görür” kabulünü koştur. scripts/os-acceptance/syscall_abi.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hata pointer veya başarıyla karışmaz",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_errors"
      },
      "dependencies": [
        "K1134"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EBADF EFAULT ENOMEM",
      "counterexample": "Negatif hata unsigned uzunluk olur",
      "guestAcceptance": "Kullanıcı wrapper doğru hata görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_errors_positive",
        "negativeName": "os_syscall_abi_errors_negative",
        "expectedMarker": "TURKOS/OS/K1135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kullanıcı wrapper doğru hata görür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Negatif hata unsigned uzunluk olur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1135"
    },
    {
      "id": "K1136",
      "number": 1136,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.dispatch",
      "stage": "contract",
      "title": "SVC dispatch tablosu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Yetki ve pointer kontrolü işlemi önceler.",
      "action": "“SVC dispatch tablosu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yetki ve pointer kontrolü işlemi önceler. “Yetkili yazı çağrısı” kabulü ile “Yabancı adresli write” reddini aynı sözleşmeye bağla.",
      "invariant": "Yetki ve pointer kontrolü işlemi önceler",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_dispatch"
      },
      "dependencies": [
        "K1135"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili yazı çağrısı",
      "counterexample": "Yabancı adresli write",
      "guestAcceptance": "Başarısız çağrı yan etki üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_dispatch_positive",
        "negativeName": "os_syscall_abi_dispatch_negative",
        "expectedMarker": "TURKOS/OS/K1140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yetki ve pointer kontrolü işlemi önceler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı adresli write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1136"
    },
    {
      "id": "K1137",
      "number": 1137,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.dispatch",
      "stage": "implementation",
      "title": "SVC dispatch tablosu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Yetki ve pointer kontrolü işlemi önceler.",
      "action": "kernel/src/runtime/syscall_abi.rs hedefinde os_syscall_abi_dispatch yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/syscall.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yetki ve pointer kontrolü işlemi önceler",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_dispatch"
      },
      "dependencies": [
        "K1136"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili yazı çağrısı",
      "counterexample": "Yabancı adresli write",
      "guestAcceptance": "Başarısız çağrı yan etki üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_dispatch_positive",
        "negativeName": "os_syscall_abi_dispatch_negative",
        "expectedMarker": "TURKOS/OS/K1140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yetkili yazı çağrısı ile Yabancı adresli write ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı adresli write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1137"
    },
    {
      "id": "K1138",
      "number": 1138,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.dispatch",
      "stage": "positive",
      "title": "SVC dispatch tablosu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Yetki ve pointer kontrolü işlemi önceler.",
      "action": "os_syscall_abi_dispatch_positive testini oluştur: “Yetkili yazı çağrısı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yetki ve pointer kontrolü işlemi önceler",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_dispatch"
      },
      "dependencies": [
        "K1137"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili yazı çağrısı",
      "counterexample": "Yabancı adresli write",
      "guestAcceptance": "Başarısız çağrı yan etki üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_dispatch_positive",
        "negativeName": "os_syscall_abi_dispatch_negative",
        "expectedMarker": "TURKOS/OS/K1140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yetkili yazı çağrısı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı adresli write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1138"
    },
    {
      "id": "K1139",
      "number": 1139,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.dispatch",
      "stage": "negative",
      "title": "SVC dispatch tablosu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Yetki ve pointer kontrolü işlemi önceler.",
      "action": "os_syscall_abi_dispatch_negative testini oluştur: “Yabancı adresli write”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yetki ve pointer kontrolü işlemi önceler",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_dispatch"
      },
      "dependencies": [
        "K1138"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili yazı çağrısı",
      "counterexample": "Yabancı adresli write",
      "guestAcceptance": "Başarısız çağrı yan etki üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_dispatch_positive",
        "negativeName": "os_syscall_abi_dispatch_negative",
        "expectedMarker": "TURKOS/OS/K1140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı adresli write karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı adresli write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1139"
    },
    {
      "id": "K1140",
      "number": 1140,
      "phase": 6,
      "module": "syscall_abi",
      "feature": "syscall_abi.dispatch",
      "stage": "integration",
      "title": "SVC dispatch tablosu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Yetki ve pointer kontrolü işlemi önceler.",
      "action": "Tek ürün Image'ında “Başarısız çağrı yan etki üretmez” kabulünü koştur. scripts/os-acceptance/syscall_abi.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yetki ve pointer kontrolü işlemi önceler",
      "source": {
        "target": "kernel/src/runtime/syscall_abi.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/syscall.rs",
        "existingReferenceSha256": "ca17e177d9305de193cbb07d2f5798bc641dc75b3a493735d8f7812d53fcffe9",
        "symbol": "os_syscall_abi_dispatch"
      },
      "dependencies": [
        "K1139"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili yazı çağrısı",
      "counterexample": "Yabancı adresli write",
      "guestAcceptance": "Başarısız çağrı yan etki üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/syscall_abi.rs",
        "harness": "scripts/os-acceptance/syscall_abi.mjs",
        "positiveName": "os_syscall_abi_dispatch_positive",
        "negativeName": "os_syscall_abi_dispatch_negative",
        "expectedMarker": "TURKOS/OS/K1140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başarısız çağrı yan etki üretmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı adresli write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1140"
    },
    {
      "id": "K1141",
      "number": 1141,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.image",
      "stage": "contract",
      "title": "Gömülü INIT imaj devri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: İlk exec güvenilir imaj boyuyla sınırlıdır.",
      "action": "“Gömülü INIT imaj devri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İlk exec güvenilir imaj boyuyla sınırlıdır. “Bilinen küçük static ELF” kabulü ile “Kesik ELF header” reddini aynı sözleşmeye bağla.",
      "invariant": "İlk exec güvenilir imaj boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_image"
      },
      "dependencies": [
        "K1140"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Bilinen küçük static ELF",
      "counterexample": "Kesik ELF header",
      "guestAcceptance": "PID veya frame yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_image_positive",
        "negativeName": "os_spawn_transaction_image_negative",
        "expectedMarker": "TURKOS/OS/K1145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İlk exec güvenilir imaj boyuyla sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kesik ELF header” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1141"
    },
    {
      "id": "K1142",
      "number": 1142,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.image",
      "stage": "implementation",
      "title": "Gömülü INIT imaj devri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: İlk exec güvenilir imaj boyuyla sınırlıdır.",
      "action": "kernel/src/runtime/spawn_transaction.rs hedefinde os_spawn_transaction_image yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_image.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İlk exec güvenilir imaj boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_image"
      },
      "dependencies": [
        "K1141"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Bilinen küçük static ELF",
      "counterexample": "Kesik ELF header",
      "guestAcceptance": "PID veya frame yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_image_positive",
        "negativeName": "os_spawn_transaction_image_negative",
        "expectedMarker": "TURKOS/OS/K1145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen küçük static ELF ile Kesik ELF header ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kesik ELF header” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1142"
    },
    {
      "id": "K1143",
      "number": 1143,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.image",
      "stage": "positive",
      "title": "Gömülü INIT imaj devri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: İlk exec güvenilir imaj boyuyla sınırlıdır.",
      "action": "os_spawn_transaction_image_positive testini oluştur: “Bilinen küçük static ELF”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İlk exec güvenilir imaj boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_image"
      },
      "dependencies": [
        "K1142"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Bilinen küçük static ELF",
      "counterexample": "Kesik ELF header",
      "guestAcceptance": "PID veya frame yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_image_positive",
        "negativeName": "os_spawn_transaction_image_negative",
        "expectedMarker": "TURKOS/OS/K1145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen küçük static ELF girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kesik ELF header” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1143"
    },
    {
      "id": "K1144",
      "number": 1144,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.image",
      "stage": "negative",
      "title": "Gömülü INIT imaj devri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: İlk exec güvenilir imaj boyuyla sınırlıdır.",
      "action": "os_spawn_transaction_image_negative testini oluştur: “Kesik ELF header”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İlk exec güvenilir imaj boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_image"
      },
      "dependencies": [
        "K1143"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Bilinen küçük static ELF",
      "counterexample": "Kesik ELF header",
      "guestAcceptance": "PID veya frame yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_image_positive",
        "negativeName": "os_spawn_transaction_image_negative",
        "expectedMarker": "TURKOS/OS/K1145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kesik ELF header karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kesik ELF header” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1144"
    },
    {
      "id": "K1145",
      "number": 1145,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.image",
      "stage": "integration",
      "title": "Gömülü INIT imaj devri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: İlk exec güvenilir imaj boyuyla sınırlıdır.",
      "action": "Tek ürün Image'ında “PID veya frame yayımlanmaz” kabulünü koştur. scripts/os-acceptance/spawn_transaction.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İlk exec güvenilir imaj boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_image"
      },
      "dependencies": [
        "K1144"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Bilinen küçük static ELF",
      "counterexample": "Kesik ELF header",
      "guestAcceptance": "PID veya frame yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_image_positive",
        "negativeName": "os_spawn_transaction_image_negative",
        "expectedMarker": "TURKOS/OS/K1145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "PID veya frame yayımlanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kesik ELF header” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1145"
    },
    {
      "id": "K1146",
      "number": 1146,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.argv",
      "stage": "contract",
      "title": "Argv env ve kullanıcı stack · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Pointerlar yalnız özel stack içinde kalır.",
      "action": "“Argv env ve kullanıcı stack” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Pointerlar yalnız özel stack içinde kalır. “İki argüman ve iki env” kabulü ile “Toplam metin limit artı bir” reddini aynı sözleşmeye bağla.",
      "invariant": "Pointerlar yalnız özel stack içinde kalır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_argv"
      },
      "dependencies": [
        "K1145"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki argüman ve iki env",
      "counterexample": "Toplam metin limit artı bir",
      "guestAcceptance": "Hata bütün edinimi geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_argv_positive",
        "negativeName": "os_spawn_transaction_argv_negative",
        "expectedMarker": "TURKOS/OS/K1150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Pointerlar yalnız özel stack içinde kalır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Toplam metin limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1146"
    },
    {
      "id": "K1147",
      "number": 1147,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.argv",
      "stage": "implementation",
      "title": "Argv env ve kullanıcı stack · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Pointerlar yalnız özel stack içinde kalır.",
      "action": "kernel/src/runtime/spawn_transaction.rs hedefinde os_spawn_transaction_argv yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_image.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Pointerlar yalnız özel stack içinde kalır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_argv"
      },
      "dependencies": [
        "K1146"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki argüman ve iki env",
      "counterexample": "Toplam metin limit artı bir",
      "guestAcceptance": "Hata bütün edinimi geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_argv_positive",
        "negativeName": "os_spawn_transaction_argv_negative",
        "expectedMarker": "TURKOS/OS/K1150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki argüman ve iki env ile Toplam metin limit artı bir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Toplam metin limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1147"
    },
    {
      "id": "K1148",
      "number": 1148,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.argv",
      "stage": "positive",
      "title": "Argv env ve kullanıcı stack · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Pointerlar yalnız özel stack içinde kalır.",
      "action": "os_spawn_transaction_argv_positive testini oluştur: “İki argüman ve iki env”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Pointerlar yalnız özel stack içinde kalır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_argv"
      },
      "dependencies": [
        "K1147"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki argüman ve iki env",
      "counterexample": "Toplam metin limit artı bir",
      "guestAcceptance": "Hata bütün edinimi geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_argv_positive",
        "negativeName": "os_spawn_transaction_argv_negative",
        "expectedMarker": "TURKOS/OS/K1150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki argüman ve iki env girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Toplam metin limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1148"
    },
    {
      "id": "K1149",
      "number": 1149,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.argv",
      "stage": "negative",
      "title": "Argv env ve kullanıcı stack · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Pointerlar yalnız özel stack içinde kalır.",
      "action": "os_spawn_transaction_argv_negative testini oluştur: “Toplam metin limit artı bir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Pointerlar yalnız özel stack içinde kalır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_argv"
      },
      "dependencies": [
        "K1148"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki argüman ve iki env",
      "counterexample": "Toplam metin limit artı bir",
      "guestAcceptance": "Hata bütün edinimi geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_argv_positive",
        "negativeName": "os_spawn_transaction_argv_negative",
        "expectedMarker": "TURKOS/OS/K1150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Toplam metin limit artı bir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Toplam metin limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1149"
    },
    {
      "id": "K1150",
      "number": 1150,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.argv",
      "stage": "integration",
      "title": "Argv env ve kullanıcı stack · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Pointerlar yalnız özel stack içinde kalır.",
      "action": "Tek ürün Image'ında “Hata bütün edinimi geri alır” kabulünü koştur. scripts/os-acceptance/spawn_transaction.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Pointerlar yalnız özel stack içinde kalır",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_argv"
      },
      "dependencies": [
        "K1149"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "İki argüman ve iki env",
      "counterexample": "Toplam metin limit artı bir",
      "guestAcceptance": "Hata bütün edinimi geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_argv_positive",
        "negativeName": "os_spawn_transaction_argv_negative",
        "expectedMarker": "TURKOS/OS/K1150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hata bütün edinimi geri alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Toplam metin limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1150"
    },
    {
      "id": "K1151",
      "number": 1151,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.entry",
      "stage": "contract",
      "title": "İlk EL0 ERET · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Entry RX SP RW ve SPSR EL0 olur.",
      "action": "“İlk EL0 ERET” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Entry RX SP RW ve SPSR EL0 olur. “Hizalı geçerli entry” kabulü ile “Kernel VA entry” reddini aynı sözleşmeye bağla.",
      "invariant": "Entry RX SP RW ve SPSR EL0 olur",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_entry"
      },
      "dependencies": [
        "K1150"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Hizalı geçerli entry",
      "counterexample": "Kernel VA entry",
      "guestAcceptance": "Bozuk giriş ERETten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_entry_positive",
        "negativeName": "os_spawn_transaction_entry_negative",
        "expectedMarker": "TURKOS/OS/K1155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Entry RX SP RW ve SPSR EL0 olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kernel VA entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1151"
    },
    {
      "id": "K1152",
      "number": 1152,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.entry",
      "stage": "implementation",
      "title": "İlk EL0 ERET · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Entry RX SP RW ve SPSR EL0 olur.",
      "action": "kernel/src/runtime/spawn_transaction.rs hedefinde os_spawn_transaction_entry yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_image.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Entry RX SP RW ve SPSR EL0 olur",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_entry"
      },
      "dependencies": [
        "K1151"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Hizalı geçerli entry",
      "counterexample": "Kernel VA entry",
      "guestAcceptance": "Bozuk giriş ERETten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_entry_positive",
        "negativeName": "os_spawn_transaction_entry_negative",
        "expectedMarker": "TURKOS/OS/K1155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Hizalı geçerli entry ile Kernel VA entry ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kernel VA entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1152"
    },
    {
      "id": "K1153",
      "number": 1153,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.entry",
      "stage": "positive",
      "title": "İlk EL0 ERET · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Entry RX SP RW ve SPSR EL0 olur.",
      "action": "os_spawn_transaction_entry_positive testini oluştur: “Hizalı geçerli entry”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Entry RX SP RW ve SPSR EL0 olur",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_entry"
      },
      "dependencies": [
        "K1152"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Hizalı geçerli entry",
      "counterexample": "Kernel VA entry",
      "guestAcceptance": "Bozuk giriş ERETten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_entry_positive",
        "negativeName": "os_spawn_transaction_entry_negative",
        "expectedMarker": "TURKOS/OS/K1155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Hizalı geçerli entry girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kernel VA entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1153"
    },
    {
      "id": "K1154",
      "number": 1154,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.entry",
      "stage": "negative",
      "title": "İlk EL0 ERET · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Entry RX SP RW ve SPSR EL0 olur.",
      "action": "os_spawn_transaction_entry_negative testini oluştur: “Kernel VA entry”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Entry RX SP RW ve SPSR EL0 olur",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_entry"
      },
      "dependencies": [
        "K1153"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Hizalı geçerli entry",
      "counterexample": "Kernel VA entry",
      "guestAcceptance": "Bozuk giriş ERETten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_entry_positive",
        "negativeName": "os_spawn_transaction_entry_negative",
        "expectedMarker": "TURKOS/OS/K1155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel VA entry karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kernel VA entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1154"
    },
    {
      "id": "K1155",
      "number": 1155,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.entry",
      "stage": "integration",
      "title": "İlk EL0 ERET · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Entry RX SP RW ve SPSR EL0 olur.",
      "action": "Tek ürün Image'ında “Bozuk giriş ERETten önce reddedilir” kabulünü koştur. scripts/os-acceptance/spawn_transaction.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Entry RX SP RW ve SPSR EL0 olur",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_entry"
      },
      "dependencies": [
        "K1154"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Hizalı geçerli entry",
      "counterexample": "Kernel VA entry",
      "guestAcceptance": "Bozuk giriş ERETten önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_entry_positive",
        "negativeName": "os_spawn_transaction_entry_negative",
        "expectedMarker": "TURKOS/OS/K1155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk giriş ERETten önce reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kernel VA entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1155"
    },
    {
      "id": "K1156",
      "number": 1156,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.unwind",
      "stage": "contract",
      "title": "Kısmi spawn geri alma · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Her edinim durağı aynı başlangıca döner.",
      "action": "“Kısmi spawn geri alma” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her edinim durağı aynı başlangıca döner. “Üçüncü frame sonrası başarısızlık” kabulü ile “Handle tahsisi sonrası ENOSPC” reddini aynı sözleşmeye bağla.",
      "invariant": "Her edinim durağı aynı başlangıca döner",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_unwind"
      },
      "dependencies": [
        "K1155"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üçüncü frame sonrası başarısızlık",
      "counterexample": "Handle tahsisi sonrası ENOSPC",
      "guestAcceptance": "PID nesil ve free sayısı korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_unwind_positive",
        "negativeName": "os_spawn_transaction_unwind_negative",
        "expectedMarker": "TURKOS/OS/K1160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her edinim durağı aynı başlangıca döner kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Handle tahsisi sonrası ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1156"
    },
    {
      "id": "K1157",
      "number": 1157,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.unwind",
      "stage": "implementation",
      "title": "Kısmi spawn geri alma · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Her edinim durağı aynı başlangıca döner.",
      "action": "kernel/src/runtime/spawn_transaction.rs hedefinde os_spawn_transaction_unwind yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_image.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her edinim durağı aynı başlangıca döner",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_unwind"
      },
      "dependencies": [
        "K1156"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üçüncü frame sonrası başarısızlık",
      "counterexample": "Handle tahsisi sonrası ENOSPC",
      "guestAcceptance": "PID nesil ve free sayısı korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_unwind_positive",
        "negativeName": "os_spawn_transaction_unwind_negative",
        "expectedMarker": "TURKOS/OS/K1160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üçüncü frame sonrası başarısızlık ile Handle tahsisi sonrası ENOSPC ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Handle tahsisi sonrası ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1157"
    },
    {
      "id": "K1158",
      "number": 1158,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.unwind",
      "stage": "positive",
      "title": "Kısmi spawn geri alma · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Her edinim durağı aynı başlangıca döner.",
      "action": "os_spawn_transaction_unwind_positive testini oluştur: “Üçüncü frame sonrası başarısızlık”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her edinim durağı aynı başlangıca döner",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_unwind"
      },
      "dependencies": [
        "K1157"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üçüncü frame sonrası başarısızlık",
      "counterexample": "Handle tahsisi sonrası ENOSPC",
      "guestAcceptance": "PID nesil ve free sayısı korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_unwind_positive",
        "negativeName": "os_spawn_transaction_unwind_negative",
        "expectedMarker": "TURKOS/OS/K1160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üçüncü frame sonrası başarısızlık girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Handle tahsisi sonrası ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1158"
    },
    {
      "id": "K1159",
      "number": 1159,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.unwind",
      "stage": "negative",
      "title": "Kısmi spawn geri alma · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Her edinim durağı aynı başlangıca döner.",
      "action": "os_spawn_transaction_unwind_negative testini oluştur: “Handle tahsisi sonrası ENOSPC”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her edinim durağı aynı başlangıca döner",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_unwind"
      },
      "dependencies": [
        "K1158"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üçüncü frame sonrası başarısızlık",
      "counterexample": "Handle tahsisi sonrası ENOSPC",
      "guestAcceptance": "PID nesil ve free sayısı korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_unwind_positive",
        "negativeName": "os_spawn_transaction_unwind_negative",
        "expectedMarker": "TURKOS/OS/K1160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Handle tahsisi sonrası ENOSPC karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Handle tahsisi sonrası ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1159"
    },
    {
      "id": "K1160",
      "number": 1160,
      "phase": 6,
      "module": "spawn_transaction",
      "feature": "spawn_transaction.unwind",
      "stage": "integration",
      "title": "Kısmi spawn geri alma · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Her edinim durağı aynı başlangıca döner.",
      "action": "Tek ürün Image'ında “PID nesil ve free sayısı korunur” kabulünü koştur. scripts/os-acceptance/spawn_transaction.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her edinim durağı aynı başlangıca döner",
      "source": {
        "target": "kernel/src/runtime/spawn_transaction.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_spawn_transaction_unwind"
      },
      "dependencies": [
        "K1159"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üçüncü frame sonrası başarısızlık",
      "counterexample": "Handle tahsisi sonrası ENOSPC",
      "guestAcceptance": "PID nesil ve free sayısı korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/spawn_transaction.rs",
        "harness": "scripts/os-acceptance/spawn_transaction.mjs",
        "positiveName": "os_spawn_transaction_unwind_positive",
        "negativeName": "os_spawn_transaction_unwind_negative",
        "expectedMarker": "TURKOS/OS/K1160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "PID nesil ve free sayısı korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Handle tahsisi sonrası ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1160"
    },
    {
      "id": "K1161",
      "number": 1161,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.principal",
      "stage": "contract",
      "title": "Süreç principal kimliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Kimlik kullanıcı argümanından alınmaz.",
      "action": "“Süreç principal kimliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kimlik kullanıcı argümanından alınmaz. “Kernel atadığı iki principal” kabulü ile “Kullanıcı principal 0 ister” reddini aynı sözleşmeye bağla.",
      "invariant": "Kimlik kullanıcı argümanından alınmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_principal"
      },
      "dependencies": [
        "K1160"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Kernel atadığı iki principal",
      "counterexample": "Kullanıcı principal 0 ister",
      "guestAcceptance": "Yükseltme açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_principal_positive",
        "negativeName": "os_process_rights_principal_negative",
        "expectedMarker": "TURKOS/OS/K1165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kimlik kullanıcı argümanından alınmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kullanıcı principal 0 ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1161"
    },
    {
      "id": "K1162",
      "number": 1162,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.principal",
      "stage": "implementation",
      "title": "Süreç principal kimliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Kimlik kullanıcı argümanından alınmaz.",
      "action": "kernel/src/runtime/process_rights.rs hedefinde os_process_rights_principal yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kimlik kullanıcı argümanından alınmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_principal"
      },
      "dependencies": [
        "K1161"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Kernel atadığı iki principal",
      "counterexample": "Kullanıcı principal 0 ister",
      "guestAcceptance": "Yükseltme açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_principal_positive",
        "negativeName": "os_process_rights_principal_negative",
        "expectedMarker": "TURKOS/OS/K1165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kernel atadığı iki principal ile Kullanıcı principal 0 ister ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kullanıcı principal 0 ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1162"
    },
    {
      "id": "K1163",
      "number": 1163,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.principal",
      "stage": "positive",
      "title": "Süreç principal kimliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Kimlik kullanıcı argümanından alınmaz.",
      "action": "os_process_rights_principal_positive testini oluştur: “Kernel atadığı iki principal”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kimlik kullanıcı argümanından alınmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_principal"
      },
      "dependencies": [
        "K1162"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Kernel atadığı iki principal",
      "counterexample": "Kullanıcı principal 0 ister",
      "guestAcceptance": "Yükseltme açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_principal_positive",
        "negativeName": "os_process_rights_principal_negative",
        "expectedMarker": "TURKOS/OS/K1165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kernel atadığı iki principal girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kullanıcı principal 0 ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1163"
    },
    {
      "id": "K1164",
      "number": 1164,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.principal",
      "stage": "negative",
      "title": "Süreç principal kimliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Kimlik kullanıcı argümanından alınmaz.",
      "action": "os_process_rights_principal_negative testini oluştur: “Kullanıcı principal 0 ister”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kimlik kullanıcı argümanından alınmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_principal"
      },
      "dependencies": [
        "K1163"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Kernel atadığı iki principal",
      "counterexample": "Kullanıcı principal 0 ister",
      "guestAcceptance": "Yükseltme açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_principal_positive",
        "negativeName": "os_process_rights_principal_negative",
        "expectedMarker": "TURKOS/OS/K1165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kullanıcı principal 0 ister karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kullanıcı principal 0 ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1164"
    },
    {
      "id": "K1165",
      "number": 1165,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.principal",
      "stage": "integration",
      "title": "Süreç principal kimliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Kimlik kullanıcı argümanından alınmaz.",
      "action": "Tek ürün Image'ında “Yükseltme açık ret verir” kabulünü koştur. scripts/os-acceptance/process_rights.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kimlik kullanıcı argümanından alınmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_principal"
      },
      "dependencies": [
        "K1164"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Kernel atadığı iki principal",
      "counterexample": "Kullanıcı principal 0 ister",
      "guestAcceptance": "Yükseltme açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_principal_positive",
        "negativeName": "os_process_rights_principal_negative",
        "expectedMarker": "TURKOS/OS/K1165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yükseltme açık ret verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kullanıcı principal 0 ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1165"
    },
    {
      "id": "K1166",
      "number": 1166,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inherit",
      "stage": "contract",
      "title": "Spawn yetki devri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk yalnız açık devredilen hak alır.",
      "action": "“Spawn yetki devri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Çocuk yalnız açık devredilen hak alır. “RO dosya handle mirası” kabulü ile “Kernel aygıt handle mirası” reddini aynı sözleşmeye bağla.",
      "invariant": "Çocuk yalnız açık devredilen hak alır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inherit"
      },
      "dependencies": [
        "K1165"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "RO dosya handle mirası",
      "counterexample": "Kernel aygıt handle mirası",
      "guestAcceptance": "Çocuk kernel kontrolü edinmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inherit_positive",
        "negativeName": "os_process_rights_inherit_negative",
        "expectedMarker": "TURKOS/OS/K1170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Çocuk yalnız açık devredilen hak alır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kernel aygıt handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1166"
    },
    {
      "id": "K1167",
      "number": 1167,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inherit",
      "stage": "implementation",
      "title": "Spawn yetki devri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk yalnız açık devredilen hak alır.",
      "action": "kernel/src/runtime/process_rights.rs hedefinde os_process_rights_inherit yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Çocuk yalnız açık devredilen hak alır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inherit"
      },
      "dependencies": [
        "K1166"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "RO dosya handle mirası",
      "counterexample": "Kernel aygıt handle mirası",
      "guestAcceptance": "Çocuk kernel kontrolü edinmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inherit_positive",
        "negativeName": "os_process_rights_inherit_negative",
        "expectedMarker": "TURKOS/OS/K1170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. RO dosya handle mirası ile Kernel aygıt handle mirası ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kernel aygıt handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1167"
    },
    {
      "id": "K1168",
      "number": 1168,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inherit",
      "stage": "positive",
      "title": "Spawn yetki devri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk yalnız açık devredilen hak alır.",
      "action": "os_process_rights_inherit_positive testini oluştur: “RO dosya handle mirası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Çocuk yalnız açık devredilen hak alır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inherit"
      },
      "dependencies": [
        "K1167"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "RO dosya handle mirası",
      "counterexample": "Kernel aygıt handle mirası",
      "guestAcceptance": "Çocuk kernel kontrolü edinmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inherit_positive",
        "negativeName": "os_process_rights_inherit_negative",
        "expectedMarker": "TURKOS/OS/K1170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; RO dosya handle mirası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kernel aygıt handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1168"
    },
    {
      "id": "K1169",
      "number": 1169,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inherit",
      "stage": "negative",
      "title": "Spawn yetki devri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk yalnız açık devredilen hak alır.",
      "action": "os_process_rights_inherit_negative testini oluştur: “Kernel aygıt handle mirası”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Çocuk yalnız açık devredilen hak alır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inherit"
      },
      "dependencies": [
        "K1168"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "RO dosya handle mirası",
      "counterexample": "Kernel aygıt handle mirası",
      "guestAcceptance": "Çocuk kernel kontrolü edinmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inherit_positive",
        "negativeName": "os_process_rights_inherit_negative",
        "expectedMarker": "TURKOS/OS/K1170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel aygıt handle mirası karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kernel aygıt handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1169"
    },
    {
      "id": "K1170",
      "number": 1170,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inherit",
      "stage": "integration",
      "title": "Spawn yetki devri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çocuk yalnız açık devredilen hak alır.",
      "action": "Tek ürün Image'ında “Çocuk kernel kontrolü edinmez” kabulünü koştur. scripts/os-acceptance/process_rights.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Çocuk yalnız açık devredilen hak alır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inherit"
      },
      "dependencies": [
        "K1169"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "RO dosya handle mirası",
      "counterexample": "Kernel aygıt handle mirası",
      "guestAcceptance": "Çocuk kernel kontrolü edinmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inherit_positive",
        "negativeName": "os_process_rights_inherit_negative",
        "expectedMarker": "TURKOS/OS/K1170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çocuk kernel kontrolü edinmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kernel aygıt handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1170"
    },
    {
      "id": "K1171",
      "number": 1171,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inspect",
      "stage": "contract",
      "title": "Başka süreci gözleme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Inspect yetkisi olmadan map okunmaz.",
      "action": "“Başka süreci gözleme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Inspect yetkisi olmadan map okunmaz. “Yetkili monitor metadata” kabulü ile “Yabancı süreç belleği” reddini aynı sözleşmeye bağla.",
      "invariant": "Inspect yetkisi olmadan map okunmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inspect"
      },
      "dependencies": [
        "K1170"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili monitor metadata",
      "counterexample": "Yabancı süreç belleği",
      "guestAcceptance": "Ret sonrası hedef hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inspect_positive",
        "negativeName": "os_process_rights_inspect_negative",
        "expectedMarker": "TURKOS/OS/K1175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Inspect yetkisi olmadan map okunmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı süreç belleği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1171"
    },
    {
      "id": "K1172",
      "number": 1172,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inspect",
      "stage": "implementation",
      "title": "Başka süreci gözleme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Inspect yetkisi olmadan map okunmaz.",
      "action": "kernel/src/runtime/process_rights.rs hedefinde os_process_rights_inspect yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Inspect yetkisi olmadan map okunmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inspect"
      },
      "dependencies": [
        "K1171"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili monitor metadata",
      "counterexample": "Yabancı süreç belleği",
      "guestAcceptance": "Ret sonrası hedef hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inspect_positive",
        "negativeName": "os_process_rights_inspect_negative",
        "expectedMarker": "TURKOS/OS/K1175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yetkili monitor metadata ile Yabancı süreç belleği ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı süreç belleği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1172"
    },
    {
      "id": "K1173",
      "number": 1173,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inspect",
      "stage": "positive",
      "title": "Başka süreci gözleme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Inspect yetkisi olmadan map okunmaz.",
      "action": "os_process_rights_inspect_positive testini oluştur: “Yetkili monitor metadata”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Inspect yetkisi olmadan map okunmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inspect"
      },
      "dependencies": [
        "K1172"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili monitor metadata",
      "counterexample": "Yabancı süreç belleği",
      "guestAcceptance": "Ret sonrası hedef hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inspect_positive",
        "negativeName": "os_process_rights_inspect_negative",
        "expectedMarker": "TURKOS/OS/K1175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yetkili monitor metadata girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı süreç belleği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1173"
    },
    {
      "id": "K1174",
      "number": 1174,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inspect",
      "stage": "negative",
      "title": "Başka süreci gözleme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Inspect yetkisi olmadan map okunmaz.",
      "action": "os_process_rights_inspect_negative testini oluştur: “Yabancı süreç belleği”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Inspect yetkisi olmadan map okunmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inspect"
      },
      "dependencies": [
        "K1173"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili monitor metadata",
      "counterexample": "Yabancı süreç belleği",
      "guestAcceptance": "Ret sonrası hedef hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inspect_positive",
        "negativeName": "os_process_rights_inspect_negative",
        "expectedMarker": "TURKOS/OS/K1175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı süreç belleği karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı süreç belleği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1174"
    },
    {
      "id": "K1175",
      "number": 1175,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.inspect",
      "stage": "integration",
      "title": "Başka süreci gözleme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Inspect yetkisi olmadan map okunmaz.",
      "action": "Tek ürün Image'ında “Ret sonrası hedef hash sabit” kabulünü koştur. scripts/os-acceptance/process_rights.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Inspect yetkisi olmadan map okunmaz",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_inspect"
      },
      "dependencies": [
        "K1174"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Yetkili monitor metadata",
      "counterexample": "Yabancı süreç belleği",
      "guestAcceptance": "Ret sonrası hedef hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_inspect_positive",
        "negativeName": "os_process_rights_inspect_negative",
        "expectedMarker": "TURKOS/OS/K1175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sonrası hedef hash sabit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı süreç belleği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1175"
    },
    {
      "id": "K1176",
      "number": 1176,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.limits",
      "stage": "contract",
      "title": "Süreç quota başlangıcı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Sayfa thread ve handle sınırı uygulanır.",
      "action": "“Süreç quota başlangıcı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Sayfa thread ve handle sınırı uygulanır. “Limitte son thread” kabulü ile “Limit artı bir task” reddini aynı sözleşmeye bağla.",
      "invariant": "Sayfa thread ve handle sınırı uygulanır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_limits"
      },
      "dependencies": [
        "K1175"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Limitte son thread",
      "counterexample": "Limit artı bir task",
      "guestAcceptance": "Diğer süreçler çalışmayı sürdürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_limits_positive",
        "negativeName": "os_process_rights_limits_negative",
        "expectedMarker": "TURKOS/OS/K1180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Sayfa thread ve handle sınırı uygulanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Limit artı bir task” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1176"
    },
    {
      "id": "K1177",
      "number": 1177,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.limits",
      "stage": "implementation",
      "title": "Süreç quota başlangıcı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Sayfa thread ve handle sınırı uygulanır.",
      "action": "kernel/src/runtime/process_rights.rs hedefinde os_process_rights_limits yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Sayfa thread ve handle sınırı uygulanır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_limits"
      },
      "dependencies": [
        "K1176"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Limitte son thread",
      "counterexample": "Limit artı bir task",
      "guestAcceptance": "Diğer süreçler çalışmayı sürdürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_limits_positive",
        "negativeName": "os_process_rights_limits_negative",
        "expectedMarker": "TURKOS/OS/K1180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Limitte son thread ile Limit artı bir task ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Limit artı bir task” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1177"
    },
    {
      "id": "K1178",
      "number": 1178,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.limits",
      "stage": "positive",
      "title": "Süreç quota başlangıcı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Sayfa thread ve handle sınırı uygulanır.",
      "action": "os_process_rights_limits_positive testini oluştur: “Limitte son thread”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Sayfa thread ve handle sınırı uygulanır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_limits"
      },
      "dependencies": [
        "K1177"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Limitte son thread",
      "counterexample": "Limit artı bir task",
      "guestAcceptance": "Diğer süreçler çalışmayı sürdürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_limits_positive",
        "negativeName": "os_process_rights_limits_negative",
        "expectedMarker": "TURKOS/OS/K1180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Limitte son thread girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Limit artı bir task” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1178"
    },
    {
      "id": "K1179",
      "number": 1179,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.limits",
      "stage": "negative",
      "title": "Süreç quota başlangıcı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Sayfa thread ve handle sınırı uygulanır.",
      "action": "os_process_rights_limits_negative testini oluştur: “Limit artı bir task”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Sayfa thread ve handle sınırı uygulanır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_limits"
      },
      "dependencies": [
        "K1178"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Limitte son thread",
      "counterexample": "Limit artı bir task",
      "guestAcceptance": "Diğer süreçler çalışmayı sürdürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_limits_positive",
        "negativeName": "os_process_rights_limits_negative",
        "expectedMarker": "TURKOS/OS/K1180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Limit artı bir task karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Limit artı bir task” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1179"
    },
    {
      "id": "K1180",
      "number": 1180,
      "phase": 6,
      "module": "process_rights",
      "feature": "process_rights.limits",
      "stage": "integration",
      "title": "Süreç quota başlangıcı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Sayfa thread ve handle sınırı uygulanır.",
      "action": "Tek ürün Image'ında “Diğer süreçler çalışmayı sürdürür” kabulünü koştur. scripts/os-acceptance/process_rights.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Sayfa thread ve handle sınırı uygulanır",
      "source": {
        "target": "kernel/src/runtime/process_rights.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_process_rights_limits"
      },
      "dependencies": [
        "K1179"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Limitte son thread",
      "counterexample": "Limit artı bir task",
      "guestAcceptance": "Diğer süreçler çalışmayı sürdürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_rights.rs",
        "harness": "scripts/os-acceptance/process_rights.mjs",
        "positiveName": "os_process_rights_limits_positive",
        "negativeName": "os_process_rights_limits_negative",
        "expectedMarker": "TURKOS/OS/K1180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Diğer süreçler çalışmayı sürdürür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Limit artı bir task” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1180"
    },
    {
      "id": "K1181",
      "number": 1181,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.exit_code",
      "stage": "contract",
      "title": "Temiz ve fault çıkış tipi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Fault sonucu normal çıkıştan ayrılır.",
      "action": "“Temiz ve fault çıkış tipi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Fault sonucu normal çıkıştan ayrılır. “EXIT 0 ve EXIT 42” kabulü ile “FAR fault başarı sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Fault sonucu normal çıkıştan ayrılır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_exit_code"
      },
      "dependencies": [
        "K1180"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EXIT 0 ve EXIT 42",
      "counterexample": "FAR fault başarı sayılır",
      "guestAcceptance": "INIT üç ayrı sonucu kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_exit_code_positive",
        "negativeName": "os_process_exit_exit_code_negative",
        "expectedMarker": "TURKOS/OS/K1185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Fault sonucu normal çıkıştan ayrılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“FAR fault başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1181"
    },
    {
      "id": "K1182",
      "number": 1182,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.exit_code",
      "stage": "implementation",
      "title": "Temiz ve fault çıkış tipi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Fault sonucu normal çıkıştan ayrılır.",
      "action": "kernel/src/runtime/process_exit.rs hedefinde os_process_exit_exit_code yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Fault sonucu normal çıkıştan ayrılır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_exit_code"
      },
      "dependencies": [
        "K1181"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EXIT 0 ve EXIT 42",
      "counterexample": "FAR fault başarı sayılır",
      "guestAcceptance": "INIT üç ayrı sonucu kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_exit_code_positive",
        "negativeName": "os_process_exit_exit_code_negative",
        "expectedMarker": "TURKOS/OS/K1185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. EXIT 0 ve EXIT 42 ile FAR fault başarı sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“FAR fault başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1182"
    },
    {
      "id": "K1183",
      "number": 1183,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.exit_code",
      "stage": "positive",
      "title": "Temiz ve fault çıkış tipi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Fault sonucu normal çıkıştan ayrılır.",
      "action": "os_process_exit_exit_code_positive testini oluştur: “EXIT 0 ve EXIT 42”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Fault sonucu normal çıkıştan ayrılır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_exit_code"
      },
      "dependencies": [
        "K1182"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EXIT 0 ve EXIT 42",
      "counterexample": "FAR fault başarı sayılır",
      "guestAcceptance": "INIT üç ayrı sonucu kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_exit_code_positive",
        "negativeName": "os_process_exit_exit_code_negative",
        "expectedMarker": "TURKOS/OS/K1185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; EXIT 0 ve EXIT 42 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“FAR fault başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1183"
    },
    {
      "id": "K1184",
      "number": 1184,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.exit_code",
      "stage": "negative",
      "title": "Temiz ve fault çıkış tipi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Fault sonucu normal çıkıştan ayrılır.",
      "action": "os_process_exit_exit_code_negative testini oluştur: “FAR fault başarı sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Fault sonucu normal çıkıştan ayrılır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_exit_code"
      },
      "dependencies": [
        "K1183"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EXIT 0 ve EXIT 42",
      "counterexample": "FAR fault başarı sayılır",
      "guestAcceptance": "INIT üç ayrı sonucu kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_exit_code_positive",
        "negativeName": "os_process_exit_exit_code_negative",
        "expectedMarker": "TURKOS/OS/K1185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "FAR fault başarı sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“FAR fault başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1184"
    },
    {
      "id": "K1185",
      "number": 1185,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.exit_code",
      "stage": "integration",
      "title": "Temiz ve fault çıkış tipi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Fault sonucu normal çıkıştan ayrılır.",
      "action": "Tek ürün Image'ında “INIT üç ayrı sonucu kaydeder” kabulünü koştur. scripts/os-acceptance/process_exit.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Fault sonucu normal çıkıştan ayrılır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_exit_code"
      },
      "dependencies": [
        "K1184"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "EXIT 0 ve EXIT 42",
      "counterexample": "FAR fault başarı sayılır",
      "guestAcceptance": "INIT üç ayrı sonucu kaydeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_exit_code_positive",
        "negativeName": "os_process_exit_exit_code_negative",
        "expectedMarker": "TURKOS/OS/K1185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "INIT üç ayrı sonucu kaydeder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“FAR fault başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1185"
    },
    {
      "id": "K1186",
      "number": 1186,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.wait",
      "stage": "contract",
      "title": "Tek teslim edilen çocuk sonucu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çıkış kodu tüketimden sonra tekrar verilmez.",
      "action": "“Tek teslim edilen çocuk sonucu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Çıkış kodu tüketimden sonra tekrar verilmez. “Çocuk önce ve sonra çıkar” kabulü ile “İki waiter aynı sonucu alır” reddini aynı sözleşmeye bağla.",
      "invariant": "Çıkış kodu tüketimden sonra tekrar verilmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_wait"
      },
      "dependencies": [
        "K1185"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Çocuk önce ve sonra çıkar",
      "counterexample": "İki waiter aynı sonucu alır",
      "guestAcceptance": "Tek sonuç sonra ECHILD",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_wait_positive",
        "negativeName": "os_process_exit_wait_negative",
        "expectedMarker": "TURKOS/OS/K1190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Çıkış kodu tüketimden sonra tekrar verilmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki waiter aynı sonucu alır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1186"
    },
    {
      "id": "K1187",
      "number": 1187,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.wait",
      "stage": "implementation",
      "title": "Tek teslim edilen çocuk sonucu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çıkış kodu tüketimden sonra tekrar verilmez.",
      "action": "kernel/src/runtime/process_exit.rs hedefinde os_process_exit_wait yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Çıkış kodu tüketimden sonra tekrar verilmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_wait"
      },
      "dependencies": [
        "K1186"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Çocuk önce ve sonra çıkar",
      "counterexample": "İki waiter aynı sonucu alır",
      "guestAcceptance": "Tek sonuç sonra ECHILD",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_wait_positive",
        "negativeName": "os_process_exit_wait_negative",
        "expectedMarker": "TURKOS/OS/K1190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Çocuk önce ve sonra çıkar ile İki waiter aynı sonucu alır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki waiter aynı sonucu alır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1187"
    },
    {
      "id": "K1188",
      "number": 1188,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.wait",
      "stage": "positive",
      "title": "Tek teslim edilen çocuk sonucu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çıkış kodu tüketimden sonra tekrar verilmez.",
      "action": "os_process_exit_wait_positive testini oluştur: “Çocuk önce ve sonra çıkar”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Çıkış kodu tüketimden sonra tekrar verilmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_wait"
      },
      "dependencies": [
        "K1187"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Çocuk önce ve sonra çıkar",
      "counterexample": "İki waiter aynı sonucu alır",
      "guestAcceptance": "Tek sonuç sonra ECHILD",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_wait_positive",
        "negativeName": "os_process_exit_wait_negative",
        "expectedMarker": "TURKOS/OS/K1190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Çocuk önce ve sonra çıkar girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki waiter aynı sonucu alır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1188"
    },
    {
      "id": "K1189",
      "number": 1189,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.wait",
      "stage": "negative",
      "title": "Tek teslim edilen çocuk sonucu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çıkış kodu tüketimden sonra tekrar verilmez.",
      "action": "os_process_exit_wait_negative testini oluştur: “İki waiter aynı sonucu alır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Çıkış kodu tüketimden sonra tekrar verilmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_wait"
      },
      "dependencies": [
        "K1188"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Çocuk önce ve sonra çıkar",
      "counterexample": "İki waiter aynı sonucu alır",
      "guestAcceptance": "Tek sonuç sonra ECHILD",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_wait_positive",
        "negativeName": "os_process_exit_wait_negative",
        "expectedMarker": "TURKOS/OS/K1190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki waiter aynı sonucu alır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki waiter aynı sonucu alır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1189"
    },
    {
      "id": "K1190",
      "number": 1190,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.wait",
      "stage": "integration",
      "title": "Tek teslim edilen çocuk sonucu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Çıkış kodu tüketimden sonra tekrar verilmez.",
      "action": "Tek ürün Image'ında “Tek sonuç sonra ECHILD” kabulünü koştur. scripts/os-acceptance/process_exit.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Çıkış kodu tüketimden sonra tekrar verilmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_wait"
      },
      "dependencies": [
        "K1189"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Çocuk önce ve sonra çıkar",
      "counterexample": "İki waiter aynı sonucu alır",
      "guestAcceptance": "Tek sonuç sonra ECHILD",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_wait_positive",
        "negativeName": "os_process_exit_wait_negative",
        "expectedMarker": "TURKOS/OS/K1190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek sonuç sonra ECHILD; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki waiter aynı sonucu alır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1190"
    },
    {
      "id": "K1191",
      "number": 1191,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.orphan",
      "stage": "contract",
      "title": "Yetim çocuk politikası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Ebeveyn ölümü çocuğu rastgele sahiplenmez.",
      "action": "“Yetim çocuk politikası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ebeveyn ölümü çocuğu rastgele sahiplenmez. “Ebeveyn iki çocukla sonlanır” kabulü ile “Eski ebeveyn PID yeniden kullanılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Ebeveyn ölümü çocuğu rastgele sahiplenmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_orphan"
      },
      "dependencies": [
        "K1190"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Ebeveyn iki çocukla sonlanır",
      "counterexample": "Eski ebeveyn PID yeniden kullanılır",
      "guestAcceptance": "INIT yetimleri tanımlı sırayla toplar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_orphan_positive",
        "negativeName": "os_process_exit_orphan_negative",
        "expectedMarker": "TURKOS/OS/K1195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ebeveyn ölümü çocuğu rastgele sahiplenmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski ebeveyn PID yeniden kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1191"
    },
    {
      "id": "K1192",
      "number": 1192,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.orphan",
      "stage": "implementation",
      "title": "Yetim çocuk politikası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Ebeveyn ölümü çocuğu rastgele sahiplenmez.",
      "action": "kernel/src/runtime/process_exit.rs hedefinde os_process_exit_orphan yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ebeveyn ölümü çocuğu rastgele sahiplenmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_orphan"
      },
      "dependencies": [
        "K1191"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Ebeveyn iki çocukla sonlanır",
      "counterexample": "Eski ebeveyn PID yeniden kullanılır",
      "guestAcceptance": "INIT yetimleri tanımlı sırayla toplar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_orphan_positive",
        "negativeName": "os_process_exit_orphan_negative",
        "expectedMarker": "TURKOS/OS/K1195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Ebeveyn iki çocukla sonlanır ile Eski ebeveyn PID yeniden kullanılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski ebeveyn PID yeniden kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1192"
    },
    {
      "id": "K1193",
      "number": 1193,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.orphan",
      "stage": "positive",
      "title": "Yetim çocuk politikası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Ebeveyn ölümü çocuğu rastgele sahiplenmez.",
      "action": "os_process_exit_orphan_positive testini oluştur: “Ebeveyn iki çocukla sonlanır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ebeveyn ölümü çocuğu rastgele sahiplenmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_orphan"
      },
      "dependencies": [
        "K1192"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Ebeveyn iki çocukla sonlanır",
      "counterexample": "Eski ebeveyn PID yeniden kullanılır",
      "guestAcceptance": "INIT yetimleri tanımlı sırayla toplar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_orphan_positive",
        "negativeName": "os_process_exit_orphan_negative",
        "expectedMarker": "TURKOS/OS/K1195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Ebeveyn iki çocukla sonlanır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski ebeveyn PID yeniden kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1193"
    },
    {
      "id": "K1194",
      "number": 1194,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.orphan",
      "stage": "negative",
      "title": "Yetim çocuk politikası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Ebeveyn ölümü çocuğu rastgele sahiplenmez.",
      "action": "os_process_exit_orphan_negative testini oluştur: “Eski ebeveyn PID yeniden kullanılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ebeveyn ölümü çocuğu rastgele sahiplenmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_orphan"
      },
      "dependencies": [
        "K1193"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Ebeveyn iki çocukla sonlanır",
      "counterexample": "Eski ebeveyn PID yeniden kullanılır",
      "guestAcceptance": "INIT yetimleri tanımlı sırayla toplar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_orphan_positive",
        "negativeName": "os_process_exit_orphan_negative",
        "expectedMarker": "TURKOS/OS/K1195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski ebeveyn PID yeniden kullanılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski ebeveyn PID yeniden kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1194"
    },
    {
      "id": "K1195",
      "number": 1195,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.orphan",
      "stage": "integration",
      "title": "Yetim çocuk politikası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: Ebeveyn ölümü çocuğu rastgele sahiplenmez.",
      "action": "Tek ürün Image'ında “INIT yetimleri tanımlı sırayla toplar” kabulünü koştur. scripts/os-acceptance/process_exit.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ebeveyn ölümü çocuğu rastgele sahiplenmez",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_orphan"
      },
      "dependencies": [
        "K1194"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Ebeveyn iki çocukla sonlanır",
      "counterexample": "Eski ebeveyn PID yeniden kullanılır",
      "guestAcceptance": "INIT yetimleri tanımlı sırayla toplar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_orphan_positive",
        "negativeName": "os_process_exit_orphan_negative",
        "expectedMarker": "TURKOS/OS/K1195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "INIT yetimleri tanımlı sırayla toplar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski ebeveyn PID yeniden kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1195"
    },
    {
      "id": "K1196",
      "number": 1196,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.retirement",
      "stage": "contract",
      "title": "Süreç son kaynak emekliliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: TTBR TLBI DMA thread ömrü tamamlanır.",
      "action": "“Süreç son kaynak emekliliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: TTBR TLBI DMA thread ömrü tamamlanır. “Üç süreç biri fault” kabulü ile “Etkin sayfa erken free” reddini aynı sözleşmeye bağla.",
      "invariant": "TTBR TLBI DMA thread ömrü tamamlanır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_retirement"
      },
      "dependencies": [
        "K1195"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç biri fault",
      "counterexample": "Etkin sayfa erken free",
      "guestAcceptance": "Sağlam iki süreç sürer hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_retirement_positive",
        "negativeName": "os_process_exit_retirement_negative",
        "expectedMarker": "TURKOS/OS/K1200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu TTBR TLBI DMA thread ömrü tamamlanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Etkin sayfa erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1196"
    },
    {
      "id": "K1197",
      "number": 1197,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.retirement",
      "stage": "implementation",
      "title": "Süreç son kaynak emekliliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: TTBR TLBI DMA thread ömrü tamamlanır.",
      "action": "kernel/src/runtime/process_exit.rs hedefinde os_process_exit_retirement yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "TTBR TLBI DMA thread ömrü tamamlanır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_retirement"
      },
      "dependencies": [
        "K1196"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç biri fault",
      "counterexample": "Etkin sayfa erken free",
      "guestAcceptance": "Sağlam iki süreç sürer hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_retirement_positive",
        "negativeName": "os_process_exit_retirement_negative",
        "expectedMarker": "TURKOS/OS/K1200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç süreç biri fault ile Etkin sayfa erken free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Etkin sayfa erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1197"
    },
    {
      "id": "K1198",
      "number": 1198,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.retirement",
      "stage": "positive",
      "title": "Süreç son kaynak emekliliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: TTBR TLBI DMA thread ömrü tamamlanır.",
      "action": "os_process_exit_retirement_positive testini oluştur: “Üç süreç biri fault”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "TTBR TLBI DMA thread ömrü tamamlanır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_retirement"
      },
      "dependencies": [
        "K1197"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç biri fault",
      "counterexample": "Etkin sayfa erken free",
      "guestAcceptance": "Sağlam iki süreç sürer hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_retirement_positive",
        "negativeName": "os_process_exit_retirement_negative",
        "expectedMarker": "TURKOS/OS/K1200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç süreç biri fault girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Etkin sayfa erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1198"
    },
    {
      "id": "K1199",
      "number": 1199,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.retirement",
      "stage": "negative",
      "title": "Süreç son kaynak emekliliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: TTBR TLBI DMA thread ömrü tamamlanır.",
      "action": "os_process_exit_retirement_negative testini oluştur: “Etkin sayfa erken free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "TTBR TLBI DMA thread ömrü tamamlanır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_retirement"
      },
      "dependencies": [
        "K1198"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç biri fault",
      "counterexample": "Etkin sayfa erken free",
      "guestAcceptance": "Sağlam iki süreç sürer hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_retirement_positive",
        "negativeName": "os_process_exit_retirement_negative",
        "expectedMarker": "TURKOS/OS/K1200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Etkin sayfa erken free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Etkin sayfa erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1199"
    },
    {
      "id": "K1200",
      "number": 1200,
      "phase": 6,
      "module": "process_exit",
      "feature": "process_exit.retirement",
      "stage": "integration",
      "title": "Süreç son kaynak emekliliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "EL0 deneylerini genel süreç yaşamına taşı; ilk exec gömülü güvenilir ELF kullanabilir, genel VFS ve çok segmentli loader sonraki fazlardır. Bu hamlenin koruduğu değişmez: TTBR TLBI DMA thread ömrü tamamlanır.",
      "action": "Tek ürün Image'ında “Sağlam iki süreç sürer hesap eşit” kabulünü koştur. scripts/os-acceptance/process_exit.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "TTBR TLBI DMA thread ömrü tamamlanır",
      "source": {
        "target": "kernel/src/runtime/process_exit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_process_exit_retirement"
      },
      "dependencies": [
        "K1199"
      ],
      "phasePrerequisites": [
        5
      ],
      "positive": "Üç süreç biri fault",
      "counterexample": "Etkin sayfa erken free",
      "guestAcceptance": "Sağlam iki süreç sürer hesap eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/process_exit.rs",
        "harness": "scripts/os-acceptance/process_exit.mjs",
        "positiveName": "os_process_exit_retirement_positive",
        "negativeName": "os_process_exit_retirement_negative",
        "expectedMarker": "TURKOS/OS/K1200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sağlam iki süreç sürer hesap eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Etkin sayfa erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-06#k1200"
    },
    {
      "id": "K1201",
      "number": 1201,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.start",
      "stage": "contract",
      "title": "Rust kullanıcı giriş noktası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CRT argc argv ve SP ABIye uyar.",
      "action": "“Rust kullanıcı giriş noktası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: CRT argc argv ve SP ABIye uyar. “İki argümanlı static program” kabulü ile “Hizasız başlangıç SP” reddini aynı sözleşmeye bağla.",
      "invariant": "CRT argc argv ve SP ABIye uyar",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_start"
      },
      "dependencies": [],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki argümanlı static program",
      "counterexample": "Hizasız başlangıç SP",
      "guestAcceptance": "Rust main argv değerlerini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_start_positive",
        "negativeName": "os_user_runtime_start_negative",
        "expectedMarker": "TURKOS/OS/K1205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu CRT argc argv ve SP ABIye uyar kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Hizasız başlangıç SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1201"
    },
    {
      "id": "K1202",
      "number": 1202,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.start",
      "stage": "implementation",
      "title": "Rust kullanıcı giriş noktası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CRT argc argv ve SP ABIye uyar.",
      "action": "userspace/src/user_runtime.rs hedefinde os_user_runtime_start yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/elf.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "CRT argc argv ve SP ABIye uyar",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_start"
      },
      "dependencies": [
        "K1201"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki argümanlı static program",
      "counterexample": "Hizasız başlangıç SP",
      "guestAcceptance": "Rust main argv değerlerini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_start_positive",
        "negativeName": "os_user_runtime_start_negative",
        "expectedMarker": "TURKOS/OS/K1205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki argümanlı static program ile Hizasız başlangıç SP ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Hizasız başlangıç SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1202"
    },
    {
      "id": "K1203",
      "number": 1203,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.start",
      "stage": "positive",
      "title": "Rust kullanıcı giriş noktası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CRT argc argv ve SP ABIye uyar.",
      "action": "os_user_runtime_start_positive testini oluştur: “İki argümanlı static program”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "CRT argc argv ve SP ABIye uyar",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_start"
      },
      "dependencies": [
        "K1202"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki argümanlı static program",
      "counterexample": "Hizasız başlangıç SP",
      "guestAcceptance": "Rust main argv değerlerini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_start_positive",
        "negativeName": "os_user_runtime_start_negative",
        "expectedMarker": "TURKOS/OS/K1205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki argümanlı static program girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Hizasız başlangıç SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1203"
    },
    {
      "id": "K1204",
      "number": 1204,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.start",
      "stage": "negative",
      "title": "Rust kullanıcı giriş noktası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CRT argc argv ve SP ABIye uyar.",
      "action": "os_user_runtime_start_negative testini oluştur: “Hizasız başlangıç SP”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "CRT argc argv ve SP ABIye uyar",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_start"
      },
      "dependencies": [
        "K1203"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki argümanlı static program",
      "counterexample": "Hizasız başlangıç SP",
      "guestAcceptance": "Rust main argv değerlerini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_start_positive",
        "negativeName": "os_user_runtime_start_negative",
        "expectedMarker": "TURKOS/OS/K1205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hizasız başlangıç SP karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Hizasız başlangıç SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1204"
    },
    {
      "id": "K1205",
      "number": 1205,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.start",
      "stage": "integration",
      "title": "Rust kullanıcı giriş noktası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CRT argc argv ve SP ABIye uyar.",
      "action": "Tek ürün Image'ında “Rust main argv değerlerini doğrular” kabulünü koştur. scripts/os-acceptance/user_runtime.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "CRT argc argv ve SP ABIye uyar",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_start"
      },
      "dependencies": [
        "K1204"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki argümanlı static program",
      "counterexample": "Hizasız başlangıç SP",
      "guestAcceptance": "Rust main argv değerlerini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_start_positive",
        "negativeName": "os_user_runtime_start_negative",
        "expectedMarker": "TURKOS/OS/K1205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Rust main argv değerlerini doğrular; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Hizasız başlangıç SP” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1205"
    },
    {
      "id": "K1206",
      "number": 1206,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.panic",
      "stage": "contract",
      "title": "EL0 panik sonlanması · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kullanıcı panik kerneli park etmez.",
      "action": "“EL0 panik sonlanması” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kullanıcı panik kerneli park etmez. “Bir program kasıtlı panic” kabulü ile “Panik sonsuz syscall döngüsü” reddini aynı sözleşmeye bağla.",
      "invariant": "Kullanıcı panik kerneli park etmez",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_panic"
      },
      "dependencies": [
        "K1205"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir program kasıtlı panic",
      "counterexample": "Panik sonsuz syscall döngüsü",
      "guestAcceptance": "Hatalı program çıkar kabuk yaşar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_panic_positive",
        "negativeName": "os_user_runtime_panic_negative",
        "expectedMarker": "TURKOS/OS/K1210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kullanıcı panik kerneli park etmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Panik sonsuz syscall döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1206"
    },
    {
      "id": "K1207",
      "number": 1207,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.panic",
      "stage": "implementation",
      "title": "EL0 panik sonlanması · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kullanıcı panik kerneli park etmez.",
      "action": "userspace/src/user_runtime.rs hedefinde os_user_runtime_panic yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/elf.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kullanıcı panik kerneli park etmez",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_panic"
      },
      "dependencies": [
        "K1206"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir program kasıtlı panic",
      "counterexample": "Panik sonsuz syscall döngüsü",
      "guestAcceptance": "Hatalı program çıkar kabuk yaşar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_panic_positive",
        "negativeName": "os_user_runtime_panic_negative",
        "expectedMarker": "TURKOS/OS/K1210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir program kasıtlı panic ile Panik sonsuz syscall döngüsü ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Panik sonsuz syscall döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1207"
    },
    {
      "id": "K1208",
      "number": 1208,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.panic",
      "stage": "positive",
      "title": "EL0 panik sonlanması · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kullanıcı panik kerneli park etmez.",
      "action": "os_user_runtime_panic_positive testini oluştur: “Bir program kasıtlı panic”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kullanıcı panik kerneli park etmez",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_panic"
      },
      "dependencies": [
        "K1207"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir program kasıtlı panic",
      "counterexample": "Panik sonsuz syscall döngüsü",
      "guestAcceptance": "Hatalı program çıkar kabuk yaşar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_panic_positive",
        "negativeName": "os_user_runtime_panic_negative",
        "expectedMarker": "TURKOS/OS/K1210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir program kasıtlı panic girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Panik sonsuz syscall döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1208"
    },
    {
      "id": "K1209",
      "number": 1209,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.panic",
      "stage": "negative",
      "title": "EL0 panik sonlanması · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kullanıcı panik kerneli park etmez.",
      "action": "os_user_runtime_panic_negative testini oluştur: “Panik sonsuz syscall döngüsü”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kullanıcı panik kerneli park etmez",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_panic"
      },
      "dependencies": [
        "K1208"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir program kasıtlı panic",
      "counterexample": "Panik sonsuz syscall döngüsü",
      "guestAcceptance": "Hatalı program çıkar kabuk yaşar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_panic_positive",
        "negativeName": "os_user_runtime_panic_negative",
        "expectedMarker": "TURKOS/OS/K1210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Panik sonsuz syscall döngüsü karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Panik sonsuz syscall döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1209"
    },
    {
      "id": "K1210",
      "number": 1210,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.panic",
      "stage": "integration",
      "title": "EL0 panik sonlanması · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kullanıcı panik kerneli park etmez.",
      "action": "Tek ürün Image'ında “Hatalı program çıkar kabuk yaşar” kabulünü koştur. scripts/os-acceptance/user_runtime.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kullanıcı panik kerneli park etmez",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_panic"
      },
      "dependencies": [
        "K1209"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir program kasıtlı panic",
      "counterexample": "Panik sonsuz syscall döngüsü",
      "guestAcceptance": "Hatalı program çıkar kabuk yaşar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_panic_positive",
        "negativeName": "os_user_runtime_panic_negative",
        "expectedMarker": "TURKOS/OS/K1210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hatalı program çıkar kabuk yaşar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Panik sonsuz syscall döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1210"
    },
    {
      "id": "K1211",
      "number": 1211,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.alloc",
      "stage": "contract",
      "title": "Kullanıcı allocator köprüsü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Allocator yalnız kendi heapini kullanır.",
      "action": "“Kullanıcı allocator köprüsü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Allocator yalnız kendi heapini kullanır. “Vec benzeri üç tampon” kabulü ile “Süreç quota dolu” reddini aynı sözleşmeye bağla.",
      "invariant": "Allocator yalnız kendi heapini kullanır",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_alloc"
      },
      "dependencies": [
        "K1210"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Vec benzeri üç tampon",
      "counterexample": "Süreç quota dolu",
      "guestAcceptance": "ENOMEM diğer programı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_alloc_positive",
        "negativeName": "os_user_runtime_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Allocator yalnız kendi heapini kullanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Süreç quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1211"
    },
    {
      "id": "K1212",
      "number": 1212,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.alloc",
      "stage": "implementation",
      "title": "Kullanıcı allocator köprüsü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Allocator yalnız kendi heapini kullanır.",
      "action": "userspace/src/user_runtime.rs hedefinde os_user_runtime_alloc yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/elf.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Allocator yalnız kendi heapini kullanır",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_alloc"
      },
      "dependencies": [
        "K1211"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Vec benzeri üç tampon",
      "counterexample": "Süreç quota dolu",
      "guestAcceptance": "ENOMEM diğer programı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_alloc_positive",
        "negativeName": "os_user_runtime_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Vec benzeri üç tampon ile Süreç quota dolu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Süreç quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1212"
    },
    {
      "id": "K1213",
      "number": 1213,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.alloc",
      "stage": "positive",
      "title": "Kullanıcı allocator köprüsü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Allocator yalnız kendi heapini kullanır.",
      "action": "os_user_runtime_alloc_positive testini oluştur: “Vec benzeri üç tampon”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Allocator yalnız kendi heapini kullanır",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_alloc"
      },
      "dependencies": [
        "K1212"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Vec benzeri üç tampon",
      "counterexample": "Süreç quota dolu",
      "guestAcceptance": "ENOMEM diğer programı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_alloc_positive",
        "negativeName": "os_user_runtime_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Vec benzeri üç tampon girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Süreç quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1213"
    },
    {
      "id": "K1214",
      "number": 1214,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.alloc",
      "stage": "negative",
      "title": "Kullanıcı allocator köprüsü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Allocator yalnız kendi heapini kullanır.",
      "action": "os_user_runtime_alloc_negative testini oluştur: “Süreç quota dolu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Allocator yalnız kendi heapini kullanır",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_alloc"
      },
      "dependencies": [
        "K1213"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Vec benzeri üç tampon",
      "counterexample": "Süreç quota dolu",
      "guestAcceptance": "ENOMEM diğer programı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_alloc_positive",
        "negativeName": "os_user_runtime_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Süreç quota dolu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Süreç quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1214"
    },
    {
      "id": "K1215",
      "number": 1215,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.alloc",
      "stage": "integration",
      "title": "Kullanıcı allocator köprüsü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Allocator yalnız kendi heapini kullanır.",
      "action": "Tek ürün Image'ında “ENOMEM diğer programı bozmaz” kabulünü koştur. scripts/os-acceptance/user_runtime.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Allocator yalnız kendi heapini kullanır",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_alloc"
      },
      "dependencies": [
        "K1214"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Vec benzeri üç tampon",
      "counterexample": "Süreç quota dolu",
      "guestAcceptance": "ENOMEM diğer programı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_alloc_positive",
        "negativeName": "os_user_runtime_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ENOMEM diğer programı bozmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Süreç quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1215"
    },
    {
      "id": "K1216",
      "number": 1216,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.build",
      "stage": "contract",
      "title": "Rust program derleme profili · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Native static ELF hedefi açık tutulur.",
      "action": "“Rust program derleme profili” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Native static ELF hedefi açık tutulur. “AArch64 no_std program” kabulü ile “macOS MachO program” reddini aynı sözleşmeye bağla.",
      "invariant": "Native static ELF hedefi açık tutulur",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_build"
      },
      "dependencies": [
        "K1215"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "AArch64 no_std program",
      "counterexample": "macOS MachO program",
      "guestAcceptance": "Yanlış format exec öncesi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_build_positive",
        "negativeName": "os_user_runtime_build_negative",
        "expectedMarker": "TURKOS/OS/K1220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Native static ELF hedefi açık tutulur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“macOS MachO program” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1216"
    },
    {
      "id": "K1217",
      "number": 1217,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.build",
      "stage": "implementation",
      "title": "Rust program derleme profili · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Native static ELF hedefi açık tutulur.",
      "action": "userspace/src/user_runtime.rs hedefinde os_user_runtime_build yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/elf.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Native static ELF hedefi açık tutulur",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_build"
      },
      "dependencies": [
        "K1216"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "AArch64 no_std program",
      "counterexample": "macOS MachO program",
      "guestAcceptance": "Yanlış format exec öncesi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_build_positive",
        "negativeName": "os_user_runtime_build_negative",
        "expectedMarker": "TURKOS/OS/K1220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. AArch64 no_std program ile macOS MachO program ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“macOS MachO program” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1217"
    },
    {
      "id": "K1218",
      "number": 1218,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.build",
      "stage": "positive",
      "title": "Rust program derleme profili · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Native static ELF hedefi açık tutulur.",
      "action": "os_user_runtime_build_positive testini oluştur: “AArch64 no_std program”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Native static ELF hedefi açık tutulur",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_build"
      },
      "dependencies": [
        "K1217"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "AArch64 no_std program",
      "counterexample": "macOS MachO program",
      "guestAcceptance": "Yanlış format exec öncesi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_build_positive",
        "negativeName": "os_user_runtime_build_negative",
        "expectedMarker": "TURKOS/OS/K1220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; AArch64 no_std program girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“macOS MachO program” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1218"
    },
    {
      "id": "K1219",
      "number": 1219,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.build",
      "stage": "negative",
      "title": "Rust program derleme profili · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Native static ELF hedefi açık tutulur.",
      "action": "os_user_runtime_build_negative testini oluştur: “macOS MachO program”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Native static ELF hedefi açık tutulur",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_build"
      },
      "dependencies": [
        "K1218"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "AArch64 no_std program",
      "counterexample": "macOS MachO program",
      "guestAcceptance": "Yanlış format exec öncesi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_build_positive",
        "negativeName": "os_user_runtime_build_negative",
        "expectedMarker": "TURKOS/OS/K1220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "macOS MachO program karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“macOS MachO program” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1219"
    },
    {
      "id": "K1220",
      "number": 1220,
      "phase": 7,
      "module": "user_runtime",
      "feature": "user_runtime.build",
      "stage": "integration",
      "title": "Rust program derleme profili · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Native static ELF hedefi açık tutulur.",
      "action": "Tek ürün Image'ında “Yanlış format exec öncesi reddedilir” kabulünü koştur. scripts/os-acceptance/user_runtime.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Native static ELF hedefi açık tutulur",
      "source": {
        "target": "userspace/src/user_runtime.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_user_runtime_build"
      },
      "dependencies": [
        "K1219"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "AArch64 no_std program",
      "counterexample": "macOS MachO program",
      "guestAcceptance": "Yanlış format exec öncesi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_runtime.rs",
        "harness": "scripts/os-acceptance/user_runtime.mjs",
        "positiveName": "os_user_runtime_build_positive",
        "negativeName": "os_user_runtime_build_negative",
        "expectedMarker": "TURKOS/OS/K1220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış format exec öncesi reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“macOS MachO program” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1220"
    },
    {
      "id": "K1221",
      "number": 1221,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.wrappers",
      "stage": "contract",
      "title": "Tipli syscall wrapperları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kayıt ABI ve clobber listesi doğru olur.",
      "action": "“Tipli syscall wrapperları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kayıt ABI ve clobber listesi doğru olur. “Write clock exit wrapper” kabulü ile “SIMD veya SP clobber yanlış” reddini aynı sözleşmeye bağla.",
      "invariant": "Kayıt ABI ve clobber listesi doğru olur",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_wrappers"
      },
      "dependencies": [
        "K1220"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Write clock exit wrapper",
      "counterexample": "SIMD veya SP clobber yanlış",
      "guestAcceptance": "Çağrı öncesi sonrası tanık eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_wrappers_positive",
        "negativeName": "os_user_api_wrappers_negative",
        "expectedMarker": "TURKOS/OS/K1225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kayıt ABI ve clobber listesi doğru olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“SIMD veya SP clobber yanlış” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1221"
    },
    {
      "id": "K1222",
      "number": 1222,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.wrappers",
      "stage": "implementation",
      "title": "Tipli syscall wrapperları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kayıt ABI ve clobber listesi doğru olur.",
      "action": "userspace/src/user_api.rs hedefinde os_user_api_wrappers yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/user_syscall.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kayıt ABI ve clobber listesi doğru olur",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_wrappers"
      },
      "dependencies": [
        "K1221"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Write clock exit wrapper",
      "counterexample": "SIMD veya SP clobber yanlış",
      "guestAcceptance": "Çağrı öncesi sonrası tanık eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_wrappers_positive",
        "negativeName": "os_user_api_wrappers_negative",
        "expectedMarker": "TURKOS/OS/K1225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Write clock exit wrapper ile SIMD veya SP clobber yanlış ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“SIMD veya SP clobber yanlış” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1222"
    },
    {
      "id": "K1223",
      "number": 1223,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.wrappers",
      "stage": "positive",
      "title": "Tipli syscall wrapperları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kayıt ABI ve clobber listesi doğru olur.",
      "action": "os_user_api_wrappers_positive testini oluştur: “Write clock exit wrapper”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kayıt ABI ve clobber listesi doğru olur",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_wrappers"
      },
      "dependencies": [
        "K1222"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Write clock exit wrapper",
      "counterexample": "SIMD veya SP clobber yanlış",
      "guestAcceptance": "Çağrı öncesi sonrası tanık eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_wrappers_positive",
        "negativeName": "os_user_api_wrappers_negative",
        "expectedMarker": "TURKOS/OS/K1225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Write clock exit wrapper girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“SIMD veya SP clobber yanlış” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1223"
    },
    {
      "id": "K1224",
      "number": 1224,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.wrappers",
      "stage": "negative",
      "title": "Tipli syscall wrapperları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kayıt ABI ve clobber listesi doğru olur.",
      "action": "os_user_api_wrappers_negative testini oluştur: “SIMD veya SP clobber yanlış”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kayıt ABI ve clobber listesi doğru olur",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_wrappers"
      },
      "dependencies": [
        "K1223"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Write clock exit wrapper",
      "counterexample": "SIMD veya SP clobber yanlış",
      "guestAcceptance": "Çağrı öncesi sonrası tanık eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_wrappers_positive",
        "negativeName": "os_user_api_wrappers_negative",
        "expectedMarker": "TURKOS/OS/K1225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "SIMD veya SP clobber yanlış karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“SIMD veya SP clobber yanlış” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1224"
    },
    {
      "id": "K1225",
      "number": 1225,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.wrappers",
      "stage": "integration",
      "title": "Tipli syscall wrapperları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kayıt ABI ve clobber listesi doğru olur.",
      "action": "Tek ürün Image'ında “Çağrı öncesi sonrası tanık eşit” kabulünü koştur. scripts/os-acceptance/user_api.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kayıt ABI ve clobber listesi doğru olur",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_wrappers"
      },
      "dependencies": [
        "K1224"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Write clock exit wrapper",
      "counterexample": "SIMD veya SP clobber yanlış",
      "guestAcceptance": "Çağrı öncesi sonrası tanık eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_wrappers_positive",
        "negativeName": "os_user_api_wrappers_negative",
        "expectedMarker": "TURKOS/OS/K1225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çağrı öncesi sonrası tanık eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“SIMD veya SP clobber yanlış” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1225"
    },
    {
      "id": "K1226",
      "number": 1226,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.io",
      "stage": "contract",
      "title": "Sınırlı read write döngüsü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kısa I/O ve EINTR ayrı işlenir.",
      "action": "“Sınırlı read write döngüsü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kısa I/O ve EINTR ayrı işlenir. “Üç parçalı seri yazı” kabulü ile “Sıfır ilerleyen tekrar” reddini aynı sözleşmeye bağla.",
      "invariant": "Kısa I/O ve EINTR ayrı işlenir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_io"
      },
      "dependencies": [
        "K1225"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç parçalı seri yazı",
      "counterexample": "Sıfır ilerleyen tekrar",
      "guestAcceptance": "Bütçe aşımında açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_io_positive",
        "negativeName": "os_user_api_io_negative",
        "expectedMarker": "TURKOS/OS/K1230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kısa I/O ve EINTR ayrı işlenir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sıfır ilerleyen tekrar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1226"
    },
    {
      "id": "K1227",
      "number": 1227,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.io",
      "stage": "implementation",
      "title": "Sınırlı read write döngüsü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kısa I/O ve EINTR ayrı işlenir.",
      "action": "userspace/src/user_api.rs hedefinde os_user_api_io yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/user_syscall.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kısa I/O ve EINTR ayrı işlenir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_io"
      },
      "dependencies": [
        "K1226"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç parçalı seri yazı",
      "counterexample": "Sıfır ilerleyen tekrar",
      "guestAcceptance": "Bütçe aşımında açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_io_positive",
        "negativeName": "os_user_api_io_negative",
        "expectedMarker": "TURKOS/OS/K1230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç parçalı seri yazı ile Sıfır ilerleyen tekrar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sıfır ilerleyen tekrar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1227"
    },
    {
      "id": "K1228",
      "number": 1228,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.io",
      "stage": "positive",
      "title": "Sınırlı read write döngüsü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kısa I/O ve EINTR ayrı işlenir.",
      "action": "os_user_api_io_positive testini oluştur: “Üç parçalı seri yazı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kısa I/O ve EINTR ayrı işlenir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_io"
      },
      "dependencies": [
        "K1227"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç parçalı seri yazı",
      "counterexample": "Sıfır ilerleyen tekrar",
      "guestAcceptance": "Bütçe aşımında açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_io_positive",
        "negativeName": "os_user_api_io_negative",
        "expectedMarker": "TURKOS/OS/K1230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç parçalı seri yazı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sıfır ilerleyen tekrar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1228"
    },
    {
      "id": "K1229",
      "number": 1229,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.io",
      "stage": "negative",
      "title": "Sınırlı read write döngüsü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kısa I/O ve EINTR ayrı işlenir.",
      "action": "os_user_api_io_negative testini oluştur: “Sıfır ilerleyen tekrar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kısa I/O ve EINTR ayrı işlenir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_io"
      },
      "dependencies": [
        "K1228"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç parçalı seri yazı",
      "counterexample": "Sıfır ilerleyen tekrar",
      "guestAcceptance": "Bütçe aşımında açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_io_positive",
        "negativeName": "os_user_api_io_negative",
        "expectedMarker": "TURKOS/OS/K1230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sıfır ilerleyen tekrar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sıfır ilerleyen tekrar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1229"
    },
    {
      "id": "K1230",
      "number": 1230,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.io",
      "stage": "integration",
      "title": "Sınırlı read write döngüsü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kısa I/O ve EINTR ayrı işlenir.",
      "action": "Tek ürün Image'ında “Bütçe aşımında açık hata” kabulünü koştur. scripts/os-acceptance/user_api.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kısa I/O ve EINTR ayrı işlenir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_io"
      },
      "dependencies": [
        "K1229"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç parçalı seri yazı",
      "counterexample": "Sıfır ilerleyen tekrar",
      "guestAcceptance": "Bütçe aşımında açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_io_positive",
        "negativeName": "os_user_api_io_negative",
        "expectedMarker": "TURKOS/OS/K1230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bütçe aşımında açık hata; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sıfır ilerleyen tekrar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1230"
    },
    {
      "id": "K1231",
      "number": 1231,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.ownership",
      "stage": "contract",
      "title": "RAII kullanıcı handle · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Drop tek close üretir.",
      "action": "“RAII kullanıcı handle” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Drop tek close üretir. “Taşıma sonrası tek sahip” kabulü ile “Kopyalanmış iki sahip” reddini aynı sözleşmeye bağla.",
      "invariant": "Drop tek close üretir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_ownership"
      },
      "dependencies": [
        "K1230"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Taşıma sonrası tek sahip",
      "counterexample": "Kopyalanmış iki sahip",
      "guestAcceptance": "İkinci close stale olarak reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_ownership_positive",
        "negativeName": "os_user_api_ownership_negative",
        "expectedMarker": "TURKOS/OS/K1235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Drop tek close üretir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kopyalanmış iki sahip” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1231"
    },
    {
      "id": "K1232",
      "number": 1232,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.ownership",
      "stage": "implementation",
      "title": "RAII kullanıcı handle · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Drop tek close üretir.",
      "action": "userspace/src/user_api.rs hedefinde os_user_api_ownership yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/user_syscall.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Drop tek close üretir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_ownership"
      },
      "dependencies": [
        "K1231"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Taşıma sonrası tek sahip",
      "counterexample": "Kopyalanmış iki sahip",
      "guestAcceptance": "İkinci close stale olarak reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_ownership_positive",
        "negativeName": "os_user_api_ownership_negative",
        "expectedMarker": "TURKOS/OS/K1235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Taşıma sonrası tek sahip ile Kopyalanmış iki sahip ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kopyalanmış iki sahip” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1232"
    },
    {
      "id": "K1233",
      "number": 1233,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.ownership",
      "stage": "positive",
      "title": "RAII kullanıcı handle · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Drop tek close üretir.",
      "action": "os_user_api_ownership_positive testini oluştur: “Taşıma sonrası tek sahip”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Drop tek close üretir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_ownership"
      },
      "dependencies": [
        "K1232"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Taşıma sonrası tek sahip",
      "counterexample": "Kopyalanmış iki sahip",
      "guestAcceptance": "İkinci close stale olarak reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_ownership_positive",
        "negativeName": "os_user_api_ownership_negative",
        "expectedMarker": "TURKOS/OS/K1235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Taşıma sonrası tek sahip girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kopyalanmış iki sahip” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1233"
    },
    {
      "id": "K1234",
      "number": 1234,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.ownership",
      "stage": "negative",
      "title": "RAII kullanıcı handle · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Drop tek close üretir.",
      "action": "os_user_api_ownership_negative testini oluştur: “Kopyalanmış iki sahip”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Drop tek close üretir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_ownership"
      },
      "dependencies": [
        "K1233"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Taşıma sonrası tek sahip",
      "counterexample": "Kopyalanmış iki sahip",
      "guestAcceptance": "İkinci close stale olarak reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_ownership_positive",
        "negativeName": "os_user_api_ownership_negative",
        "expectedMarker": "TURKOS/OS/K1235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kopyalanmış iki sahip karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kopyalanmış iki sahip” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1234"
    },
    {
      "id": "K1235",
      "number": 1235,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.ownership",
      "stage": "integration",
      "title": "RAII kullanıcı handle · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Drop tek close üretir.",
      "action": "Tek ürün Image'ında “İkinci close stale olarak reddedilir” kabulünü koştur. scripts/os-acceptance/user_api.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Drop tek close üretir",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_ownership"
      },
      "dependencies": [
        "K1234"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Taşıma sonrası tek sahip",
      "counterexample": "Kopyalanmış iki sahip",
      "guestAcceptance": "İkinci close stale olarak reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_ownership_positive",
        "negativeName": "os_user_api_ownership_negative",
        "expectedMarker": "TURKOS/OS/K1235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İkinci close stale olarak reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kopyalanmış iki sahip” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1235"
    },
    {
      "id": "K1236",
      "number": 1236,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.compatibility",
      "stage": "contract",
      "title": "ABI uyumluluk sorgusu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: İstemci desteklenmeyen ABIyi kullanmaz.",
      "action": "“ABI uyumluluk sorgusu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İstemci desteklenmeyen ABIyi kullanmaz. “V1 kullanıcı V1 kernel” kabulü ile “V2 gerektiren imaj” reddini aynı sözleşmeye bağla.",
      "invariant": "İstemci desteklenmeyen ABIyi kullanmaz",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_compatibility"
      },
      "dependencies": [
        "K1235"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "V1 kullanıcı V1 kernel",
      "counterexample": "V2 gerektiren imaj",
      "guestAcceptance": "Başlatma uyumsuzluk tanısı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_compatibility_positive",
        "negativeName": "os_user_api_compatibility_negative",
        "expectedMarker": "TURKOS/OS/K1240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İstemci desteklenmeyen ABIyi kullanmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“V2 gerektiren imaj” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1236"
    },
    {
      "id": "K1237",
      "number": 1237,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.compatibility",
      "stage": "implementation",
      "title": "ABI uyumluluk sorgusu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: İstemci desteklenmeyen ABIyi kullanmaz.",
      "action": "userspace/src/user_api.rs hedefinde os_user_api_compatibility yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/user_syscall.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İstemci desteklenmeyen ABIyi kullanmaz",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_compatibility"
      },
      "dependencies": [
        "K1236"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "V1 kullanıcı V1 kernel",
      "counterexample": "V2 gerektiren imaj",
      "guestAcceptance": "Başlatma uyumsuzluk tanısı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_compatibility_positive",
        "negativeName": "os_user_api_compatibility_negative",
        "expectedMarker": "TURKOS/OS/K1240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. V1 kullanıcı V1 kernel ile V2 gerektiren imaj ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“V2 gerektiren imaj” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1237"
    },
    {
      "id": "K1238",
      "number": 1238,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.compatibility",
      "stage": "positive",
      "title": "ABI uyumluluk sorgusu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: İstemci desteklenmeyen ABIyi kullanmaz.",
      "action": "os_user_api_compatibility_positive testini oluştur: “V1 kullanıcı V1 kernel”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İstemci desteklenmeyen ABIyi kullanmaz",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_compatibility"
      },
      "dependencies": [
        "K1237"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "V1 kullanıcı V1 kernel",
      "counterexample": "V2 gerektiren imaj",
      "guestAcceptance": "Başlatma uyumsuzluk tanısı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_compatibility_positive",
        "negativeName": "os_user_api_compatibility_negative",
        "expectedMarker": "TURKOS/OS/K1240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; V1 kullanıcı V1 kernel girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“V2 gerektiren imaj” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1238"
    },
    {
      "id": "K1239",
      "number": 1239,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.compatibility",
      "stage": "negative",
      "title": "ABI uyumluluk sorgusu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: İstemci desteklenmeyen ABIyi kullanmaz.",
      "action": "os_user_api_compatibility_negative testini oluştur: “V2 gerektiren imaj”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İstemci desteklenmeyen ABIyi kullanmaz",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_compatibility"
      },
      "dependencies": [
        "K1238"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "V1 kullanıcı V1 kernel",
      "counterexample": "V2 gerektiren imaj",
      "guestAcceptance": "Başlatma uyumsuzluk tanısı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_compatibility_positive",
        "negativeName": "os_user_api_compatibility_negative",
        "expectedMarker": "TURKOS/OS/K1240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "V2 gerektiren imaj karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“V2 gerektiren imaj” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1239"
    },
    {
      "id": "K1240",
      "number": 1240,
      "phase": 7,
      "module": "user_api",
      "feature": "user_api.compatibility",
      "stage": "integration",
      "title": "ABI uyumluluk sorgusu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: İstemci desteklenmeyen ABIyi kullanmaz.",
      "action": "Tek ürün Image'ında “Başlatma uyumsuzluk tanısı verir” kabulünü koştur. scripts/os-acceptance/user_api.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İstemci desteklenmeyen ABIyi kullanmaz",
      "source": {
        "target": "userspace/src/user_api.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/user_syscall.rs",
        "existingReferenceSha256": "8208b0d41b3e6ab1f6197e3d91ab424bfb5333865e65201478c98688a9b74c48",
        "symbol": "os_user_api_compatibility"
      },
      "dependencies": [
        "K1239"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "V1 kullanıcı V1 kernel",
      "counterexample": "V2 gerektiren imaj",
      "guestAcceptance": "Başlatma uyumsuzluk tanısı verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/user_api.rs",
        "harness": "scripts/os-acceptance/user_api.mjs",
        "positiveName": "os_user_api_compatibility_positive",
        "negativeName": "os_user_api_compatibility_negative",
        "expectedMarker": "TURKOS/OS/K1240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başlatma uyumsuzluk tanısı verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“V2 gerektiren imaj” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1240"
    },
    {
      "id": "K1241",
      "number": 1241,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.manifest",
      "stage": "contract",
      "title": "INIT hizmet manifesti · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bağımlılık döngüsü açılışı kilitlemez.",
      "action": "“INIT hizmet manifesti” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bağımlılık döngüsü açılışı kilitlemez. “Console sonra shell” kabulü ile “İki hizmet birbirini ister” reddini aynı sözleşmeye bağla.",
      "invariant": "Bağımlılık döngüsü açılışı kilitlemez",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_manifest"
      },
      "dependencies": [
        "K1240"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console sonra shell",
      "counterexample": "İki hizmet birbirini ister",
      "guestAcceptance": "Manifest açık döngü hatası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_manifest_positive",
        "negativeName": "os_init_service_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bağımlılık döngüsü açılışı kilitlemez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki hizmet birbirini ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1241"
    },
    {
      "id": "K1242",
      "number": 1242,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.manifest",
      "stage": "implementation",
      "title": "INIT hizmet manifesti · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bağımlılık döngüsü açılışı kilitlemez.",
      "action": "userspace/src/init_service.rs hedefinde os_init_service_manifest yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bağımlılık döngüsü açılışı kilitlemez",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_manifest"
      },
      "dependencies": [
        "K1241"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console sonra shell",
      "counterexample": "İki hizmet birbirini ister",
      "guestAcceptance": "Manifest açık döngü hatası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_manifest_positive",
        "negativeName": "os_init_service_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Console sonra shell ile İki hizmet birbirini ister ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki hizmet birbirini ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1242"
    },
    {
      "id": "K1243",
      "number": 1243,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.manifest",
      "stage": "positive",
      "title": "INIT hizmet manifesti · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bağımlılık döngüsü açılışı kilitlemez.",
      "action": "os_init_service_manifest_positive testini oluştur: “Console sonra shell”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bağımlılık döngüsü açılışı kilitlemez",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_manifest"
      },
      "dependencies": [
        "K1242"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console sonra shell",
      "counterexample": "İki hizmet birbirini ister",
      "guestAcceptance": "Manifest açık döngü hatası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_manifest_positive",
        "negativeName": "os_init_service_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Console sonra shell girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki hizmet birbirini ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1243"
    },
    {
      "id": "K1244",
      "number": 1244,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.manifest",
      "stage": "negative",
      "title": "INIT hizmet manifesti · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bağımlılık döngüsü açılışı kilitlemez.",
      "action": "os_init_service_manifest_negative testini oluştur: “İki hizmet birbirini ister”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bağımlılık döngüsü açılışı kilitlemez",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_manifest"
      },
      "dependencies": [
        "K1243"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console sonra shell",
      "counterexample": "İki hizmet birbirini ister",
      "guestAcceptance": "Manifest açık döngü hatası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_manifest_positive",
        "negativeName": "os_init_service_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki hizmet birbirini ister karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki hizmet birbirini ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1244"
    },
    {
      "id": "K1245",
      "number": 1245,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.manifest",
      "stage": "integration",
      "title": "INIT hizmet manifesti · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bağımlılık döngüsü açılışı kilitlemez.",
      "action": "Tek ürün Image'ında “Manifest açık döngü hatası” kabulünü koştur. scripts/os-acceptance/init_service.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bağımlılık döngüsü açılışı kilitlemez",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_manifest"
      },
      "dependencies": [
        "K1244"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console sonra shell",
      "counterexample": "İki hizmet birbirini ister",
      "guestAcceptance": "Manifest açık döngü hatası",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_manifest_positive",
        "negativeName": "os_init_service_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Manifest açık döngü hatası; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki hizmet birbirini ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1245"
    },
    {
      "id": "K1246",
      "number": 1246,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.start_order",
      "stage": "contract",
      "title": "INIT başlangıç sırası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Hizmet hazır sinyali beklenir.",
      "action": "“INIT başlangıç sırası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hizmet hazır sinyali beklenir. “Console ready sonra shell” kabulü ile “Erken shell spawn” reddini aynı sözleşmeye bağla.",
      "invariant": "Hizmet hazır sinyali beklenir",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_start_order"
      },
      "dependencies": [
        "K1245"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console ready sonra shell",
      "counterexample": "Erken shell spawn",
      "guestAcceptance": "İlk istem console hazırdan sonra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_start_order_positive",
        "negativeName": "os_init_service_start_order_negative",
        "expectedMarker": "TURKOS/OS/K1250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hizmet hazır sinyali beklenir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Erken shell spawn” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1246"
    },
    {
      "id": "K1247",
      "number": 1247,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.start_order",
      "stage": "implementation",
      "title": "INIT başlangıç sırası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Hizmet hazır sinyali beklenir.",
      "action": "userspace/src/init_service.rs hedefinde os_init_service_start_order yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hizmet hazır sinyali beklenir",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_start_order"
      },
      "dependencies": [
        "K1246"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console ready sonra shell",
      "counterexample": "Erken shell spawn",
      "guestAcceptance": "İlk istem console hazırdan sonra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_start_order_positive",
        "negativeName": "os_init_service_start_order_negative",
        "expectedMarker": "TURKOS/OS/K1250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Console ready sonra shell ile Erken shell spawn ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Erken shell spawn” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1247"
    },
    {
      "id": "K1248",
      "number": 1248,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.start_order",
      "stage": "positive",
      "title": "INIT başlangıç sırası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Hizmet hazır sinyali beklenir.",
      "action": "os_init_service_start_order_positive testini oluştur: “Console ready sonra shell”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hizmet hazır sinyali beklenir",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_start_order"
      },
      "dependencies": [
        "K1247"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console ready sonra shell",
      "counterexample": "Erken shell spawn",
      "guestAcceptance": "İlk istem console hazırdan sonra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_start_order_positive",
        "negativeName": "os_init_service_start_order_negative",
        "expectedMarker": "TURKOS/OS/K1250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Console ready sonra shell girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Erken shell spawn” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1248"
    },
    {
      "id": "K1249",
      "number": 1249,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.start_order",
      "stage": "negative",
      "title": "INIT başlangıç sırası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Hizmet hazır sinyali beklenir.",
      "action": "os_init_service_start_order_negative testini oluştur: “Erken shell spawn”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hizmet hazır sinyali beklenir",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_start_order"
      },
      "dependencies": [
        "K1248"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console ready sonra shell",
      "counterexample": "Erken shell spawn",
      "guestAcceptance": "İlk istem console hazırdan sonra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_start_order_positive",
        "negativeName": "os_init_service_start_order_negative",
        "expectedMarker": "TURKOS/OS/K1250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Erken shell spawn karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Erken shell spawn” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1249"
    },
    {
      "id": "K1250",
      "number": 1250,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.start_order",
      "stage": "integration",
      "title": "INIT başlangıç sırası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Hizmet hazır sinyali beklenir.",
      "action": "Tek ürün Image'ında “İlk istem console hazırdan sonra” kabulünü koştur. scripts/os-acceptance/init_service.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hizmet hazır sinyali beklenir",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_start_order"
      },
      "dependencies": [
        "K1249"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Console ready sonra shell",
      "counterexample": "Erken shell spawn",
      "guestAcceptance": "İlk istem console hazırdan sonra",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_start_order_positive",
        "negativeName": "os_init_service_start_order_negative",
        "expectedMarker": "TURKOS/OS/K1250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İlk istem console hazırdan sonra; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Erken shell spawn” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1250"
    },
    {
      "id": "K1251",
      "number": 1251,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.restart",
      "stage": "contract",
      "title": "Sınırlı hizmet yeniden başlatma · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Crash döngüsü sonsuz spawn yapmaz.",
      "action": "“Sınırlı hizmet yeniden başlatma” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Crash döngüsü sonsuz spawn yapmaz. “Bir kez çöken kabuk” kabulü ile “On hızlı crash” reddini aynı sözleşmeye bağla.",
      "invariant": "Crash döngüsü sonsuz spawn yapmaz",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_restart"
      },
      "dependencies": [
        "K1250"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir kez çöken kabuk",
      "counterexample": "On hızlı crash",
      "guestAcceptance": "Backoff ve görünür degraded durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_restart_positive",
        "negativeName": "os_init_service_restart_negative",
        "expectedMarker": "TURKOS/OS/K1255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Crash döngüsü sonsuz spawn yapmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“On hızlı crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1251"
    },
    {
      "id": "K1252",
      "number": 1252,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.restart",
      "stage": "implementation",
      "title": "Sınırlı hizmet yeniden başlatma · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Crash döngüsü sonsuz spawn yapmaz.",
      "action": "userspace/src/init_service.rs hedefinde os_init_service_restart yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Crash döngüsü sonsuz spawn yapmaz",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_restart"
      },
      "dependencies": [
        "K1251"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir kez çöken kabuk",
      "counterexample": "On hızlı crash",
      "guestAcceptance": "Backoff ve görünür degraded durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_restart_positive",
        "negativeName": "os_init_service_restart_negative",
        "expectedMarker": "TURKOS/OS/K1255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir kez çöken kabuk ile On hızlı crash ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“On hızlı crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1252"
    },
    {
      "id": "K1253",
      "number": 1253,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.restart",
      "stage": "positive",
      "title": "Sınırlı hizmet yeniden başlatma · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Crash döngüsü sonsuz spawn yapmaz.",
      "action": "os_init_service_restart_positive testini oluştur: “Bir kez çöken kabuk”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Crash döngüsü sonsuz spawn yapmaz",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_restart"
      },
      "dependencies": [
        "K1252"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir kez çöken kabuk",
      "counterexample": "On hızlı crash",
      "guestAcceptance": "Backoff ve görünür degraded durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_restart_positive",
        "negativeName": "os_init_service_restart_negative",
        "expectedMarker": "TURKOS/OS/K1255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir kez çöken kabuk girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“On hızlı crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1253"
    },
    {
      "id": "K1254",
      "number": 1254,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.restart",
      "stage": "negative",
      "title": "Sınırlı hizmet yeniden başlatma · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Crash döngüsü sonsuz spawn yapmaz.",
      "action": "os_init_service_restart_negative testini oluştur: “On hızlı crash”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Crash döngüsü sonsuz spawn yapmaz",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_restart"
      },
      "dependencies": [
        "K1253"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir kez çöken kabuk",
      "counterexample": "On hızlı crash",
      "guestAcceptance": "Backoff ve görünür degraded durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_restart_positive",
        "negativeName": "os_init_service_restart_negative",
        "expectedMarker": "TURKOS/OS/K1255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "On hızlı crash karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“On hızlı crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1254"
    },
    {
      "id": "K1255",
      "number": 1255,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.restart",
      "stage": "integration",
      "title": "Sınırlı hizmet yeniden başlatma · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Crash döngüsü sonsuz spawn yapmaz.",
      "action": "Tek ürün Image'ında “Backoff ve görünür degraded durum” kabulünü koştur. scripts/os-acceptance/init_service.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Crash döngüsü sonsuz spawn yapmaz",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_restart"
      },
      "dependencies": [
        "K1254"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Bir kez çöken kabuk",
      "counterexample": "On hızlı crash",
      "guestAcceptance": "Backoff ve görünür degraded durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_restart_positive",
        "negativeName": "os_init_service_restart_negative",
        "expectedMarker": "TURKOS/OS/K1255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Backoff ve görünür degraded durum; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“On hızlı crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1255"
    },
    {
      "id": "K1256",
      "number": 1256,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.reaping",
      "stage": "contract",
      "title": "INIT çocuk toplama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Zombie kayıtları bounded tutulur.",
      "action": "“INIT çocuk toplama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Zombie kayıtları bounded tutulur. “Yüz kısa ömürlü araç” kabulü ile “Çıkış kodu tüketilmez” reddini aynı sözleşmeye bağla.",
      "invariant": "Zombie kayıtları bounded tutulur",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_reaping"
      },
      "dependencies": [
        "K1255"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Yüz kısa ömürlü araç",
      "counterexample": "Çıkış kodu tüketilmez",
      "guestAcceptance": "Süreç tablosu başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_reaping_positive",
        "negativeName": "os_init_service_reaping_negative",
        "expectedMarker": "TURKOS/OS/K1260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Zombie kayıtları bounded tutulur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Çıkış kodu tüketilmez” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1256"
    },
    {
      "id": "K1257",
      "number": 1257,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.reaping",
      "stage": "implementation",
      "title": "INIT çocuk toplama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Zombie kayıtları bounded tutulur.",
      "action": "userspace/src/init_service.rs hedefinde os_init_service_reaping yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Zombie kayıtları bounded tutulur",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_reaping"
      },
      "dependencies": [
        "K1256"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Yüz kısa ömürlü araç",
      "counterexample": "Çıkış kodu tüketilmez",
      "guestAcceptance": "Süreç tablosu başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_reaping_positive",
        "negativeName": "os_init_service_reaping_negative",
        "expectedMarker": "TURKOS/OS/K1260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yüz kısa ömürlü araç ile Çıkış kodu tüketilmez ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Çıkış kodu tüketilmez” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1257"
    },
    {
      "id": "K1258",
      "number": 1258,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.reaping",
      "stage": "positive",
      "title": "INIT çocuk toplama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Zombie kayıtları bounded tutulur.",
      "action": "os_init_service_reaping_positive testini oluştur: “Yüz kısa ömürlü araç”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Zombie kayıtları bounded tutulur",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_reaping"
      },
      "dependencies": [
        "K1257"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Yüz kısa ömürlü araç",
      "counterexample": "Çıkış kodu tüketilmez",
      "guestAcceptance": "Süreç tablosu başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_reaping_positive",
        "negativeName": "os_init_service_reaping_negative",
        "expectedMarker": "TURKOS/OS/K1260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yüz kısa ömürlü araç girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Çıkış kodu tüketilmez” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1258"
    },
    {
      "id": "K1259",
      "number": 1259,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.reaping",
      "stage": "negative",
      "title": "INIT çocuk toplama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Zombie kayıtları bounded tutulur.",
      "action": "os_init_service_reaping_negative testini oluştur: “Çıkış kodu tüketilmez”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Zombie kayıtları bounded tutulur",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_reaping"
      },
      "dependencies": [
        "K1258"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Yüz kısa ömürlü araç",
      "counterexample": "Çıkış kodu tüketilmez",
      "guestAcceptance": "Süreç tablosu başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_reaping_positive",
        "negativeName": "os_init_service_reaping_negative",
        "expectedMarker": "TURKOS/OS/K1260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çıkış kodu tüketilmez karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Çıkış kodu tüketilmez” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1259"
    },
    {
      "id": "K1260",
      "number": 1260,
      "phase": 7,
      "module": "init_service",
      "feature": "init_service.reaping",
      "stage": "integration",
      "title": "INIT çocuk toplama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Zombie kayıtları bounded tutulur.",
      "action": "Tek ürün Image'ında “Süreç tablosu başlangıca döner” kabulünü koştur. scripts/os-acceptance/init_service.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Zombie kayıtları bounded tutulur",
      "source": {
        "target": "userspace/src/init_service.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_init_service_reaping"
      },
      "dependencies": [
        "K1259"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Yüz kısa ömürlü araç",
      "counterexample": "Çıkış kodu tüketilmez",
      "guestAcceptance": "Süreç tablosu başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/init_service.rs",
        "harness": "scripts/os-acceptance/init_service.mjs",
        "positiveName": "os_init_service_reaping_positive",
        "negativeName": "os_init_service_reaping_negative",
        "expectedMarker": "TURKOS/OS/K1260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Süreç tablosu başlangıca döner; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Çıkış kodu tüketilmez” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1260"
    },
    {
      "id": "K1261",
      "number": 1261,
      "phase": 7,
      "module": "shell",
      "feature": "shell.lexer",
      "stage": "contract",
      "title": "Kabuk sözcük ve tırnak çözümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Girdi uzunluğu ve UTF8 sınırlıdır.",
      "action": "“Kabuk sözcük ve tırnak çözümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Girdi uzunluğu ve UTF8 sınırlıdır. “Boşluk tırnak ve kaçış” kabulü ile “Açık tırnak veya bozuk UTF8” reddini aynı sözleşmeye bağla.",
      "invariant": "Girdi uzunluğu ve UTF8 sınırlıdır",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_lexer"
      },
      "dependencies": [
        "K1260"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Boşluk tırnak ve kaçış",
      "counterexample": "Açık tırnak veya bozuk UTF8",
      "guestAcceptance": "Hata sonrası temiz yeni istem",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_lexer_positive",
        "negativeName": "os_shell_lexer_negative",
        "expectedMarker": "TURKOS/OS/K1265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Girdi uzunluğu ve UTF8 sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Açık tırnak veya bozuk UTF8” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1261"
    },
    {
      "id": "K1262",
      "number": 1262,
      "phase": 7,
      "module": "shell",
      "feature": "shell.lexer",
      "stage": "implementation",
      "title": "Kabuk sözcük ve tırnak çözümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Girdi uzunluğu ve UTF8 sınırlıdır.",
      "action": "userspace/src/shell.rs hedefinde os_shell_lexer yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Girdi uzunluğu ve UTF8 sınırlıdır",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_lexer"
      },
      "dependencies": [
        "K1261"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Boşluk tırnak ve kaçış",
      "counterexample": "Açık tırnak veya bozuk UTF8",
      "guestAcceptance": "Hata sonrası temiz yeni istem",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_lexer_positive",
        "negativeName": "os_shell_lexer_negative",
        "expectedMarker": "TURKOS/OS/K1265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boşluk tırnak ve kaçış ile Açık tırnak veya bozuk UTF8 ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Açık tırnak veya bozuk UTF8” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1262"
    },
    {
      "id": "K1263",
      "number": 1263,
      "phase": 7,
      "module": "shell",
      "feature": "shell.lexer",
      "stage": "positive",
      "title": "Kabuk sözcük ve tırnak çözümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Girdi uzunluğu ve UTF8 sınırlıdır.",
      "action": "os_shell_lexer_positive testini oluştur: “Boşluk tırnak ve kaçış”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Girdi uzunluğu ve UTF8 sınırlıdır",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_lexer"
      },
      "dependencies": [
        "K1262"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Boşluk tırnak ve kaçış",
      "counterexample": "Açık tırnak veya bozuk UTF8",
      "guestAcceptance": "Hata sonrası temiz yeni istem",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_lexer_positive",
        "negativeName": "os_shell_lexer_negative",
        "expectedMarker": "TURKOS/OS/K1265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boşluk tırnak ve kaçış girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Açık tırnak veya bozuk UTF8” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1263"
    },
    {
      "id": "K1264",
      "number": 1264,
      "phase": 7,
      "module": "shell",
      "feature": "shell.lexer",
      "stage": "negative",
      "title": "Kabuk sözcük ve tırnak çözümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Girdi uzunluğu ve UTF8 sınırlıdır.",
      "action": "os_shell_lexer_negative testini oluştur: “Açık tırnak veya bozuk UTF8”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Girdi uzunluğu ve UTF8 sınırlıdır",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_lexer"
      },
      "dependencies": [
        "K1263"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Boşluk tırnak ve kaçış",
      "counterexample": "Açık tırnak veya bozuk UTF8",
      "guestAcceptance": "Hata sonrası temiz yeni istem",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_lexer_positive",
        "negativeName": "os_shell_lexer_negative",
        "expectedMarker": "TURKOS/OS/K1265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Açık tırnak veya bozuk UTF8 karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Açık tırnak veya bozuk UTF8” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1264"
    },
    {
      "id": "K1265",
      "number": 1265,
      "phase": 7,
      "module": "shell",
      "feature": "shell.lexer",
      "stage": "integration",
      "title": "Kabuk sözcük ve tırnak çözümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Girdi uzunluğu ve UTF8 sınırlıdır.",
      "action": "Tek ürün Image'ında “Hata sonrası temiz yeni istem” kabulünü koştur. scripts/os-acceptance/shell.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Girdi uzunluğu ve UTF8 sınırlıdır",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_lexer"
      },
      "dependencies": [
        "K1264"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Boşluk tırnak ve kaçış",
      "counterexample": "Açık tırnak veya bozuk UTF8",
      "guestAcceptance": "Hata sonrası temiz yeni istem",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_lexer_positive",
        "negativeName": "os_shell_lexer_negative",
        "expectedMarker": "TURKOS/OS/K1265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hata sonrası temiz yeni istem; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Açık tırnak veya bozuk UTF8” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1265"
    },
    {
      "id": "K1266",
      "number": 1266,
      "phase": 7,
      "module": "shell",
      "feature": "shell.commands",
      "stage": "contract",
      "title": "Builtin ve external komut ayrımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Builtin exec imajıyla karışmaz.",
      "action": "“Builtin ve external komut ayrımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Builtin exec imajıyla karışmaz. “Help exit ve bilinen araç” kabulü ile “Bilinmeyen komut” reddini aynı sözleşmeye bağla.",
      "invariant": "Builtin exec imajıyla karışmaz",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_commands"
      },
      "dependencies": [
        "K1265"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Help exit ve bilinen araç",
      "counterexample": "Bilinmeyen komut",
      "guestAcceptance": "ENOENT ardından kabuk devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_commands_positive",
        "negativeName": "os_shell_commands_negative",
        "expectedMarker": "TURKOS/OS/K1270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Builtin exec imajıyla karışmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bilinmeyen komut” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1266"
    },
    {
      "id": "K1267",
      "number": 1267,
      "phase": 7,
      "module": "shell",
      "feature": "shell.commands",
      "stage": "implementation",
      "title": "Builtin ve external komut ayrımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Builtin exec imajıyla karışmaz.",
      "action": "userspace/src/shell.rs hedefinde os_shell_commands yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Builtin exec imajıyla karışmaz",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_commands"
      },
      "dependencies": [
        "K1266"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Help exit ve bilinen araç",
      "counterexample": "Bilinmeyen komut",
      "guestAcceptance": "ENOENT ardından kabuk devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_commands_positive",
        "negativeName": "os_shell_commands_negative",
        "expectedMarker": "TURKOS/OS/K1270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Help exit ve bilinen araç ile Bilinmeyen komut ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bilinmeyen komut” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1267"
    },
    {
      "id": "K1268",
      "number": 1268,
      "phase": 7,
      "module": "shell",
      "feature": "shell.commands",
      "stage": "positive",
      "title": "Builtin ve external komut ayrımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Builtin exec imajıyla karışmaz.",
      "action": "os_shell_commands_positive testini oluştur: “Help exit ve bilinen araç”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Builtin exec imajıyla karışmaz",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_commands"
      },
      "dependencies": [
        "K1267"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Help exit ve bilinen araç",
      "counterexample": "Bilinmeyen komut",
      "guestAcceptance": "ENOENT ardından kabuk devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_commands_positive",
        "negativeName": "os_shell_commands_negative",
        "expectedMarker": "TURKOS/OS/K1270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Help exit ve bilinen araç girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bilinmeyen komut” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1268"
    },
    {
      "id": "K1269",
      "number": 1269,
      "phase": 7,
      "module": "shell",
      "feature": "shell.commands",
      "stage": "negative",
      "title": "Builtin ve external komut ayrımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Builtin exec imajıyla karışmaz.",
      "action": "os_shell_commands_negative testini oluştur: “Bilinmeyen komut”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Builtin exec imajıyla karışmaz",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_commands"
      },
      "dependencies": [
        "K1268"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Help exit ve bilinen araç",
      "counterexample": "Bilinmeyen komut",
      "guestAcceptance": "ENOENT ardından kabuk devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_commands_positive",
        "negativeName": "os_shell_commands_negative",
        "expectedMarker": "TURKOS/OS/K1270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bilinmeyen komut karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bilinmeyen komut” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1269"
    },
    {
      "id": "K1270",
      "number": 1270,
      "phase": 7,
      "module": "shell",
      "feature": "shell.commands",
      "stage": "integration",
      "title": "Builtin ve external komut ayrımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Builtin exec imajıyla karışmaz.",
      "action": "Tek ürün Image'ında “ENOENT ardından kabuk devam” kabulünü koştur. scripts/os-acceptance/shell.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Builtin exec imajıyla karışmaz",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_commands"
      },
      "dependencies": [
        "K1269"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Help exit ve bilinen araç",
      "counterexample": "Bilinmeyen komut",
      "guestAcceptance": "ENOENT ardından kabuk devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_commands_positive",
        "negativeName": "os_shell_commands_negative",
        "expectedMarker": "TURKOS/OS/K1270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ENOENT ardından kabuk devam; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bilinmeyen komut” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1270"
    },
    {
      "id": "K1271",
      "number": 1271,
      "phase": 7,
      "module": "shell",
      "feature": "shell.launch",
      "stage": "contract",
      "title": "Ön plan komut çalıştırma · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kabuk yalnız kendi çocuğunu bekler.",
      "action": "“Ön plan komut çalıştırma” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kabuk yalnız kendi çocuğunu bekler. “Araç EXIT 42” kabulü ile “Yabancı PID bekleme” reddini aynı sözleşmeye bağla.",
      "invariant": "Kabuk yalnız kendi çocuğunu bekler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_launch"
      },
      "dependencies": [
        "K1270"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Araç EXIT 42",
      "counterexample": "Yabancı PID bekleme",
      "guestAcceptance": "Sonuç kodu tek kez gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_launch_positive",
        "negativeName": "os_shell_launch_negative",
        "expectedMarker": "TURKOS/OS/K1275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kabuk yalnız kendi çocuğunu bekler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı PID bekleme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1271"
    },
    {
      "id": "K1272",
      "number": 1272,
      "phase": 7,
      "module": "shell",
      "feature": "shell.launch",
      "stage": "implementation",
      "title": "Ön plan komut çalıştırma · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kabuk yalnız kendi çocuğunu bekler.",
      "action": "userspace/src/shell.rs hedefinde os_shell_launch yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kabuk yalnız kendi çocuğunu bekler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_launch"
      },
      "dependencies": [
        "K1271"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Araç EXIT 42",
      "counterexample": "Yabancı PID bekleme",
      "guestAcceptance": "Sonuç kodu tek kez gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_launch_positive",
        "negativeName": "os_shell_launch_negative",
        "expectedMarker": "TURKOS/OS/K1275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Araç EXIT 42 ile Yabancı PID bekleme ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı PID bekleme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1272"
    },
    {
      "id": "K1273",
      "number": 1273,
      "phase": 7,
      "module": "shell",
      "feature": "shell.launch",
      "stage": "positive",
      "title": "Ön plan komut çalıştırma · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kabuk yalnız kendi çocuğunu bekler.",
      "action": "os_shell_launch_positive testini oluştur: “Araç EXIT 42”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kabuk yalnız kendi çocuğunu bekler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_launch"
      },
      "dependencies": [
        "K1272"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Araç EXIT 42",
      "counterexample": "Yabancı PID bekleme",
      "guestAcceptance": "Sonuç kodu tek kez gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_launch_positive",
        "negativeName": "os_shell_launch_negative",
        "expectedMarker": "TURKOS/OS/K1275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Araç EXIT 42 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı PID bekleme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1273"
    },
    {
      "id": "K1274",
      "number": 1274,
      "phase": 7,
      "module": "shell",
      "feature": "shell.launch",
      "stage": "negative",
      "title": "Ön plan komut çalıştırma · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kabuk yalnız kendi çocuğunu bekler.",
      "action": "os_shell_launch_negative testini oluştur: “Yabancı PID bekleme”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kabuk yalnız kendi çocuğunu bekler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_launch"
      },
      "dependencies": [
        "K1273"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Araç EXIT 42",
      "counterexample": "Yabancı PID bekleme",
      "guestAcceptance": "Sonuç kodu tek kez gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_launch_positive",
        "negativeName": "os_shell_launch_negative",
        "expectedMarker": "TURKOS/OS/K1275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı PID bekleme karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı PID bekleme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1274"
    },
    {
      "id": "K1275",
      "number": 1275,
      "phase": 7,
      "module": "shell",
      "feature": "shell.launch",
      "stage": "integration",
      "title": "Ön plan komut çalıştırma · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kabuk yalnız kendi çocuğunu bekler.",
      "action": "Tek ürün Image'ında “Sonuç kodu tek kez gösterilir” kabulünü koştur. scripts/os-acceptance/shell.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kabuk yalnız kendi çocuğunu bekler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_launch"
      },
      "dependencies": [
        "K1274"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Araç EXIT 42",
      "counterexample": "Yabancı PID bekleme",
      "guestAcceptance": "Sonuç kodu tek kez gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_launch_positive",
        "negativeName": "os_shell_launch_negative",
        "expectedMarker": "TURKOS/OS/K1275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sonuç kodu tek kez gösterilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı PID bekleme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1275"
    },
    {
      "id": "K1276",
      "number": 1276,
      "phase": 7,
      "module": "shell",
      "feature": "shell.interrupt",
      "stage": "contract",
      "title": "Kabuk girdi iptali · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CtrlC yarım satırı temizler.",
      "action": "“Kabuk girdi iptali” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: CtrlC yarım satırı temizler. “Uzun yarım komut” kabulü ile “İptal eski satırı çalıştırır” reddini aynı sözleşmeye bağla.",
      "invariant": "CtrlC yarım satırı temizler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_interrupt"
      },
      "dependencies": [
        "K1275"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Uzun yarım komut",
      "counterexample": "İptal eski satırı çalıştırır",
      "guestAcceptance": "İptalden sonra yeni komut geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_interrupt_positive",
        "negativeName": "os_shell_interrupt_negative",
        "expectedMarker": "TURKOS/OS/K1280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu CtrlC yarım satırı temizler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İptal eski satırı çalıştırır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1276"
    },
    {
      "id": "K1277",
      "number": 1277,
      "phase": 7,
      "module": "shell",
      "feature": "shell.interrupt",
      "stage": "implementation",
      "title": "Kabuk girdi iptali · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CtrlC yarım satırı temizler.",
      "action": "userspace/src/shell.rs hedefinde os_shell_interrupt yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "CtrlC yarım satırı temizler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_interrupt"
      },
      "dependencies": [
        "K1276"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Uzun yarım komut",
      "counterexample": "İptal eski satırı çalıştırır",
      "guestAcceptance": "İptalden sonra yeni komut geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_interrupt_positive",
        "negativeName": "os_shell_interrupt_negative",
        "expectedMarker": "TURKOS/OS/K1280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Uzun yarım komut ile İptal eski satırı çalıştırır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İptal eski satırı çalıştırır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1277"
    },
    {
      "id": "K1278",
      "number": 1278,
      "phase": 7,
      "module": "shell",
      "feature": "shell.interrupt",
      "stage": "positive",
      "title": "Kabuk girdi iptali · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CtrlC yarım satırı temizler.",
      "action": "os_shell_interrupt_positive testini oluştur: “Uzun yarım komut”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "CtrlC yarım satırı temizler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_interrupt"
      },
      "dependencies": [
        "K1277"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Uzun yarım komut",
      "counterexample": "İptal eski satırı çalıştırır",
      "guestAcceptance": "İptalden sonra yeni komut geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_interrupt_positive",
        "negativeName": "os_shell_interrupt_negative",
        "expectedMarker": "TURKOS/OS/K1280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Uzun yarım komut girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İptal eski satırı çalıştırır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1278"
    },
    {
      "id": "K1279",
      "number": 1279,
      "phase": 7,
      "module": "shell",
      "feature": "shell.interrupt",
      "stage": "negative",
      "title": "Kabuk girdi iptali · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CtrlC yarım satırı temizler.",
      "action": "os_shell_interrupt_negative testini oluştur: “İptal eski satırı çalıştırır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "CtrlC yarım satırı temizler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_interrupt"
      },
      "dependencies": [
        "K1278"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Uzun yarım komut",
      "counterexample": "İptal eski satırı çalıştırır",
      "guestAcceptance": "İptalden sonra yeni komut geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_interrupt_positive",
        "negativeName": "os_shell_interrupt_negative",
        "expectedMarker": "TURKOS/OS/K1280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İptal eski satırı çalıştırır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İptal eski satırı çalıştırır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1279"
    },
    {
      "id": "K1280",
      "number": 1280,
      "phase": 7,
      "module": "shell",
      "feature": "shell.interrupt",
      "stage": "integration",
      "title": "Kabuk girdi iptali · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: CtrlC yarım satırı temizler.",
      "action": "Tek ürün Image'ında “İptalden sonra yeni komut geçer” kabulünü koştur. scripts/os-acceptance/shell.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "CtrlC yarım satırı temizler",
      "source": {
        "target": "userspace/src/shell.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_shell_interrupt"
      },
      "dependencies": [
        "K1279"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Uzun yarım komut",
      "counterexample": "İptal eski satırı çalıştırır",
      "guestAcceptance": "İptalden sonra yeni komut geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/shell.rs",
        "harness": "scripts/os-acceptance/shell.mjs",
        "positiveName": "os_shell_interrupt_positive",
        "negativeName": "os_shell_interrupt_negative",
        "expectedMarker": "TURKOS/OS/K1280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İptalden sonra yeni komut geçer; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İptal eski satırı çalıştırır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1280"
    },
    {
      "id": "K1281",
      "number": 1281,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.echo",
      "stage": "contract",
      "title": "Echo ve çıktı aracı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bayt uzunluğu ve encoding korunur.",
      "action": "“Echo ve çıktı aracı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bayt uzunluğu ve encoding korunur. “Türkçe çok baytlı argüman” kabulü ile “NUL içeren argüman” reddini aynı sözleşmeye bağla.",
      "invariant": "Bayt uzunluğu ve encoding korunur",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_echo"
      },
      "dependencies": [
        "K1280"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Türkçe çok baytlı argüman",
      "counterexample": "NUL içeren argüman",
      "guestAcceptance": "Çıktı beklenen byte hashine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_echo_positive",
        "negativeName": "os_core_tools_echo_negative",
        "expectedMarker": "TURKOS/OS/K1285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bayt uzunluğu ve encoding korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“NUL içeren argüman” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1281"
    },
    {
      "id": "K1282",
      "number": 1282,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.echo",
      "stage": "implementation",
      "title": "Echo ve çıktı aracı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bayt uzunluğu ve encoding korunur.",
      "action": "userspace/src/core_tools.rs hedefinde os_core_tools_echo yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bayt uzunluğu ve encoding korunur",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_echo"
      },
      "dependencies": [
        "K1281"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Türkçe çok baytlı argüman",
      "counterexample": "NUL içeren argüman",
      "guestAcceptance": "Çıktı beklenen byte hashine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_echo_positive",
        "negativeName": "os_core_tools_echo_negative",
        "expectedMarker": "TURKOS/OS/K1285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Türkçe çok baytlı argüman ile NUL içeren argüman ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“NUL içeren argüman” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1282"
    },
    {
      "id": "K1283",
      "number": 1283,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.echo",
      "stage": "positive",
      "title": "Echo ve çıktı aracı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bayt uzunluğu ve encoding korunur.",
      "action": "os_core_tools_echo_positive testini oluştur: “Türkçe çok baytlı argüman”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bayt uzunluğu ve encoding korunur",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_echo"
      },
      "dependencies": [
        "K1282"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Türkçe çok baytlı argüman",
      "counterexample": "NUL içeren argüman",
      "guestAcceptance": "Çıktı beklenen byte hashine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_echo_positive",
        "negativeName": "os_core_tools_echo_negative",
        "expectedMarker": "TURKOS/OS/K1285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Türkçe çok baytlı argüman girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“NUL içeren argüman” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1283"
    },
    {
      "id": "K1284",
      "number": 1284,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.echo",
      "stage": "negative",
      "title": "Echo ve çıktı aracı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bayt uzunluğu ve encoding korunur.",
      "action": "os_core_tools_echo_negative testini oluştur: “NUL içeren argüman”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bayt uzunluğu ve encoding korunur",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_echo"
      },
      "dependencies": [
        "K1283"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Türkçe çok baytlı argüman",
      "counterexample": "NUL içeren argüman",
      "guestAcceptance": "Çıktı beklenen byte hashine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_echo_positive",
        "negativeName": "os_core_tools_echo_negative",
        "expectedMarker": "TURKOS/OS/K1285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "NUL içeren argüman karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“NUL içeren argüman” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1284"
    },
    {
      "id": "K1285",
      "number": 1285,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.echo",
      "stage": "integration",
      "title": "Echo ve çıktı aracı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Bayt uzunluğu ve encoding korunur.",
      "action": "Tek ürün Image'ında “Çıktı beklenen byte hashine eşit” kabulünü koştur. scripts/os-acceptance/core_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bayt uzunluğu ve encoding korunur",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_echo"
      },
      "dependencies": [
        "K1284"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Türkçe çok baytlı argüman",
      "counterexample": "NUL içeren argüman",
      "guestAcceptance": "Çıktı beklenen byte hashine eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_echo_positive",
        "negativeName": "os_core_tools_echo_negative",
        "expectedMarker": "TURKOS/OS/K1285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çıktı beklenen byte hashine eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“NUL içeren argüman” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1285"
    },
    {
      "id": "K1286",
      "number": 1286,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.read_file",
      "stage": "contract",
      "title": "Cat benzeri RO araç · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: EOF kısa okuma hatadan ayrıdır.",
      "action": "“Cat benzeri RO araç” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: EOF kısa okuma hatadan ayrıdır. “0 1 513 bayt dosya” kabulü ile “Bozuk handle veya eksik yol” reddini aynı sözleşmeye bağla.",
      "invariant": "EOF kısa okuma hatadan ayrıdır",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_read_file"
      },
      "dependencies": [
        "K1285"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "0 1 513 bayt dosya",
      "counterexample": "Bozuk handle veya eksik yol",
      "guestAcceptance": "Dosya hash ve kaynak disk değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_read_file_positive",
        "negativeName": "os_core_tools_read_file_negative",
        "expectedMarker": "TURKOS/OS/K1290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu EOF kısa okuma hatadan ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk handle veya eksik yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1286"
    },
    {
      "id": "K1287",
      "number": 1287,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.read_file",
      "stage": "implementation",
      "title": "Cat benzeri RO araç · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: EOF kısa okuma hatadan ayrıdır.",
      "action": "userspace/src/core_tools.rs hedefinde os_core_tools_read_file yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "EOF kısa okuma hatadan ayrıdır",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_read_file"
      },
      "dependencies": [
        "K1286"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "0 1 513 bayt dosya",
      "counterexample": "Bozuk handle veya eksik yol",
      "guestAcceptance": "Dosya hash ve kaynak disk değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_read_file_positive",
        "negativeName": "os_core_tools_read_file_negative",
        "expectedMarker": "TURKOS/OS/K1290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 0 1 513 bayt dosya ile Bozuk handle veya eksik yol ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk handle veya eksik yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1287"
    },
    {
      "id": "K1288",
      "number": 1288,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.read_file",
      "stage": "positive",
      "title": "Cat benzeri RO araç · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: EOF kısa okuma hatadan ayrıdır.",
      "action": "os_core_tools_read_file_positive testini oluştur: “0 1 513 bayt dosya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "EOF kısa okuma hatadan ayrıdır",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_read_file"
      },
      "dependencies": [
        "K1287"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "0 1 513 bayt dosya",
      "counterexample": "Bozuk handle veya eksik yol",
      "guestAcceptance": "Dosya hash ve kaynak disk değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_read_file_positive",
        "negativeName": "os_core_tools_read_file_negative",
        "expectedMarker": "TURKOS/OS/K1290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 0 1 513 bayt dosya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk handle veya eksik yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1288"
    },
    {
      "id": "K1289",
      "number": 1289,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.read_file",
      "stage": "negative",
      "title": "Cat benzeri RO araç · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: EOF kısa okuma hatadan ayrıdır.",
      "action": "os_core_tools_read_file_negative testini oluştur: “Bozuk handle veya eksik yol”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "EOF kısa okuma hatadan ayrıdır",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_read_file"
      },
      "dependencies": [
        "K1288"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "0 1 513 bayt dosya",
      "counterexample": "Bozuk handle veya eksik yol",
      "guestAcceptance": "Dosya hash ve kaynak disk değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_read_file_positive",
        "negativeName": "os_core_tools_read_file_negative",
        "expectedMarker": "TURKOS/OS/K1290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk handle veya eksik yol karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk handle veya eksik yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1289"
    },
    {
      "id": "K1290",
      "number": 1290,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.read_file",
      "stage": "integration",
      "title": "Cat benzeri RO araç · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: EOF kısa okuma hatadan ayrıdır.",
      "action": "Tek ürün Image'ında “Dosya hash ve kaynak disk değişmez” kabulünü koştur. scripts/os-acceptance/core_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "EOF kısa okuma hatadan ayrıdır",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_read_file"
      },
      "dependencies": [
        "K1289"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "0 1 513 bayt dosya",
      "counterexample": "Bozuk handle veya eksik yol",
      "guestAcceptance": "Dosya hash ve kaynak disk değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_read_file_positive",
        "negativeName": "os_core_tools_read_file_negative",
        "expectedMarker": "TURKOS/OS/K1290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dosya hash ve kaynak disk değişmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk handle veya eksik yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1290"
    },
    {
      "id": "K1291",
      "number": 1291,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.directory",
      "stage": "contract",
      "title": "Ls benzeri dizin aracı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Yalnız erişilebilir kayıtlar listelenir.",
      "action": "“Ls benzeri dizin aracı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yalnız erişilebilir kayıtlar listelenir. “İki farklı dizin” kabulü ile “Yetkisiz dizin” reddini aynı sözleşmeye bağla.",
      "invariant": "Yalnız erişilebilir kayıtlar listelenir",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_directory"
      },
      "dependencies": [
        "K1290"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki farklı dizin",
      "counterexample": "Yetkisiz dizin",
      "guestAcceptance": "Ret tanısı ve kabuk devamı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_directory_positive",
        "negativeName": "os_core_tools_directory_negative",
        "expectedMarker": "TURKOS/OS/K1295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yalnız erişilebilir kayıtlar listelenir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yetkisiz dizin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1291"
    },
    {
      "id": "K1292",
      "number": 1292,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.directory",
      "stage": "implementation",
      "title": "Ls benzeri dizin aracı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Yalnız erişilebilir kayıtlar listelenir.",
      "action": "userspace/src/core_tools.rs hedefinde os_core_tools_directory yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yalnız erişilebilir kayıtlar listelenir",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_directory"
      },
      "dependencies": [
        "K1291"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki farklı dizin",
      "counterexample": "Yetkisiz dizin",
      "guestAcceptance": "Ret tanısı ve kabuk devamı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_directory_positive",
        "negativeName": "os_core_tools_directory_negative",
        "expectedMarker": "TURKOS/OS/K1295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki farklı dizin ile Yetkisiz dizin ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yetkisiz dizin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1292"
    },
    {
      "id": "K1293",
      "number": 1293,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.directory",
      "stage": "positive",
      "title": "Ls benzeri dizin aracı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Yalnız erişilebilir kayıtlar listelenir.",
      "action": "os_core_tools_directory_positive testini oluştur: “İki farklı dizin”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yalnız erişilebilir kayıtlar listelenir",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_directory"
      },
      "dependencies": [
        "K1292"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki farklı dizin",
      "counterexample": "Yetkisiz dizin",
      "guestAcceptance": "Ret tanısı ve kabuk devamı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_directory_positive",
        "negativeName": "os_core_tools_directory_negative",
        "expectedMarker": "TURKOS/OS/K1295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki farklı dizin girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yetkisiz dizin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1293"
    },
    {
      "id": "K1294",
      "number": 1294,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.directory",
      "stage": "negative",
      "title": "Ls benzeri dizin aracı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Yalnız erişilebilir kayıtlar listelenir.",
      "action": "os_core_tools_directory_negative testini oluştur: “Yetkisiz dizin”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yalnız erişilebilir kayıtlar listelenir",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_directory"
      },
      "dependencies": [
        "K1293"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki farklı dizin",
      "counterexample": "Yetkisiz dizin",
      "guestAcceptance": "Ret tanısı ve kabuk devamı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_directory_positive",
        "negativeName": "os_core_tools_directory_negative",
        "expectedMarker": "TURKOS/OS/K1295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yetkisiz dizin karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yetkisiz dizin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1294"
    },
    {
      "id": "K1295",
      "number": 1295,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.directory",
      "stage": "integration",
      "title": "Ls benzeri dizin aracı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Yalnız erişilebilir kayıtlar listelenir.",
      "action": "Tek ürün Image'ında “Ret tanısı ve kabuk devamı” kabulünü koştur. scripts/os-acceptance/core_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yalnız erişilebilir kayıtlar listelenir",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_directory"
      },
      "dependencies": [
        "K1294"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "İki farklı dizin",
      "counterexample": "Yetkisiz dizin",
      "guestAcceptance": "Ret tanısı ve kabuk devamı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_directory_positive",
        "negativeName": "os_core_tools_directory_negative",
        "expectedMarker": "TURKOS/OS/K1295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret tanısı ve kabuk devamı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yetkisiz dizin” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1295"
    },
    {
      "id": "K1296",
      "number": 1296,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.process_view",
      "stage": "contract",
      "title": "Ps ve uptime aracı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kernel sırları yerine izinli metadata.",
      "action": "“Ps ve uptime aracı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kernel sırları yerine izinli metadata. “Üç süreç ve monoton uptime” kabulü ile “Yabancı adres isteği” reddini aynı sözleşmeye bağla.",
      "invariant": "Kernel sırları yerine izinli metadata",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_process_view"
      },
      "dependencies": [
        "K1295"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç süreç ve monoton uptime",
      "counterexample": "Yabancı adres isteği",
      "guestAcceptance": "PID nesil ve süre doğru gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_process_view_positive",
        "negativeName": "os_core_tools_process_view_negative",
        "expectedMarker": "TURKOS/OS/K1300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kernel sırları yerine izinli metadata kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı adres isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1296"
    },
    {
      "id": "K1297",
      "number": 1297,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.process_view",
      "stage": "implementation",
      "title": "Ps ve uptime aracı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kernel sırları yerine izinli metadata.",
      "action": "userspace/src/core_tools.rs hedefinde os_core_tools_process_view yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kernel sırları yerine izinli metadata",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_process_view"
      },
      "dependencies": [
        "K1296"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç süreç ve monoton uptime",
      "counterexample": "Yabancı adres isteği",
      "guestAcceptance": "PID nesil ve süre doğru gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_process_view_positive",
        "negativeName": "os_core_tools_process_view_negative",
        "expectedMarker": "TURKOS/OS/K1300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç süreç ve monoton uptime ile Yabancı adres isteği ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı adres isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1297"
    },
    {
      "id": "K1298",
      "number": 1298,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.process_view",
      "stage": "positive",
      "title": "Ps ve uptime aracı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kernel sırları yerine izinli metadata.",
      "action": "os_core_tools_process_view_positive testini oluştur: “Üç süreç ve monoton uptime”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kernel sırları yerine izinli metadata",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_process_view"
      },
      "dependencies": [
        "K1297"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç süreç ve monoton uptime",
      "counterexample": "Yabancı adres isteği",
      "guestAcceptance": "PID nesil ve süre doğru gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_process_view_positive",
        "negativeName": "os_core_tools_process_view_negative",
        "expectedMarker": "TURKOS/OS/K1300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç süreç ve monoton uptime girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı adres isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1298"
    },
    {
      "id": "K1299",
      "number": 1299,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.process_view",
      "stage": "negative",
      "title": "Ps ve uptime aracı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kernel sırları yerine izinli metadata.",
      "action": "os_core_tools_process_view_negative testini oluştur: “Yabancı adres isteği”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kernel sırları yerine izinli metadata",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_process_view"
      },
      "dependencies": [
        "K1298"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç süreç ve monoton uptime",
      "counterexample": "Yabancı adres isteği",
      "guestAcceptance": "PID nesil ve süre doğru gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_process_view_positive",
        "negativeName": "os_core_tools_process_view_negative",
        "expectedMarker": "TURKOS/OS/K1300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı adres isteği karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı adres isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1299"
    },
    {
      "id": "K1300",
      "number": 1300,
      "phase": 7,
      "module": "core_tools",
      "feature": "core_tools.process_view",
      "stage": "integration",
      "title": "Ps ve uptime aracı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kernel deney çıktısı yerine gerçek Rust EL0 programı hedeflenir. İlk araçlar native ABI ve salt-okunur kaynak kullanır; POSIX uyumu iddia edilmez. Bu hamlenin koruduğu değişmez: Kernel sırları yerine izinli metadata.",
      "action": "Tek ürün Image'ında “PID nesil ve süre doğru gösterilir” kabulünü koştur. scripts/os-acceptance/core_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kernel sırları yerine izinli metadata",
      "source": {
        "target": "userspace/src/core_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_core_tools_process_view"
      },
      "dependencies": [
        "K1299"
      ],
      "phasePrerequisites": [
        6
      ],
      "positive": "Üç süreç ve monoton uptime",
      "counterexample": "Yabancı adres isteği",
      "guestAcceptance": "PID nesil ve süre doğru gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/core_tools.rs",
        "harness": "scripts/os-acceptance/core_tools.mjs",
        "positiveName": "os_core_tools_process_view_positive",
        "negativeName": "os_core_tools_process_view_negative",
        "expectedMarker": "TURKOS/OS/K1300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "PID nesil ve süre doğru gösterilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı adres isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-07#k1300"
    },
    {
      "id": "K1301",
      "number": 1301,
      "phase": 8,
      "module": "handles",
      "feature": "handles.types",
      "stage": "contract",
      "title": "Tipli nesne handle · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Dosya channel ve task türü ayrılır.",
      "action": "“Tipli nesne handle” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Dosya channel ve task türü ayrılır. “Üç tür üç kayıt” kabulü ile “Dosya handle channel APIde” reddini aynı sözleşmeye bağla.",
      "invariant": "Dosya channel ve task türü ayrılır",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_types"
      },
      "dependencies": [],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç tür üç kayıt",
      "counterexample": "Dosya handle channel APIde",
      "guestAcceptance": "Yanlış tür EBADF döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_types_positive",
        "negativeName": "os_handles_types_negative",
        "expectedMarker": "TURKOS/OS/K1305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Dosya channel ve task türü ayrılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Dosya handle channel APIde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1301"
    },
    {
      "id": "K1302",
      "number": 1302,
      "phase": 8,
      "module": "handles",
      "feature": "handles.types",
      "stage": "implementation",
      "title": "Tipli nesne handle · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Dosya channel ve task türü ayrılır.",
      "action": "kernel/src/runtime/handles.rs hedefinde os_handles_types yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Dosya channel ve task türü ayrılır",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_types"
      },
      "dependencies": [
        "K1301"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç tür üç kayıt",
      "counterexample": "Dosya handle channel APIde",
      "guestAcceptance": "Yanlış tür EBADF döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_types_positive",
        "negativeName": "os_handles_types_negative",
        "expectedMarker": "TURKOS/OS/K1305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç tür üç kayıt ile Dosya handle channel APIde ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Dosya handle channel APIde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1302"
    },
    {
      "id": "K1303",
      "number": 1303,
      "phase": 8,
      "module": "handles",
      "feature": "handles.types",
      "stage": "positive",
      "title": "Tipli nesne handle · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Dosya channel ve task türü ayrılır.",
      "action": "os_handles_types_positive testini oluştur: “Üç tür üç kayıt”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Dosya channel ve task türü ayrılır",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_types"
      },
      "dependencies": [
        "K1302"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç tür üç kayıt",
      "counterexample": "Dosya handle channel APIde",
      "guestAcceptance": "Yanlış tür EBADF döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_types_positive",
        "negativeName": "os_handles_types_negative",
        "expectedMarker": "TURKOS/OS/K1305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç tür üç kayıt girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Dosya handle channel APIde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1303"
    },
    {
      "id": "K1304",
      "number": 1304,
      "phase": 8,
      "module": "handles",
      "feature": "handles.types",
      "stage": "negative",
      "title": "Tipli nesne handle · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Dosya channel ve task türü ayrılır.",
      "action": "os_handles_types_negative testini oluştur: “Dosya handle channel APIde”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Dosya channel ve task türü ayrılır",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_types"
      },
      "dependencies": [
        "K1303"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç tür üç kayıt",
      "counterexample": "Dosya handle channel APIde",
      "guestAcceptance": "Yanlış tür EBADF döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_types_positive",
        "negativeName": "os_handles_types_negative",
        "expectedMarker": "TURKOS/OS/K1305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dosya handle channel APIde karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Dosya handle channel APIde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1304"
    },
    {
      "id": "K1305",
      "number": 1305,
      "phase": 8,
      "module": "handles",
      "feature": "handles.types",
      "stage": "integration",
      "title": "Tipli nesne handle · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Dosya channel ve task türü ayrılır.",
      "action": "Tek ürün Image'ında “Yanlış tür EBADF döndürür” kabulünü koştur. scripts/os-acceptance/handles.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Dosya channel ve task türü ayrılır",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_types"
      },
      "dependencies": [
        "K1304"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç tür üç kayıt",
      "counterexample": "Dosya handle channel APIde",
      "guestAcceptance": "Yanlış tür EBADF döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_types_positive",
        "negativeName": "os_handles_types_negative",
        "expectedMarker": "TURKOS/OS/K1305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış tür EBADF döndürür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Dosya handle channel APIde” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1305"
    },
    {
      "id": "K1306",
      "number": 1306,
      "phase": 8,
      "module": "handles",
      "feature": "handles.generation",
      "stage": "contract",
      "title": "Handle nesil tekrar kullanımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Eski handle yeni nesneye erişmez.",
      "action": "“Handle nesil tekrar kullanımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Eski handle yeni nesneye erişmez. “Aynı slot üç close open” kabulü ile “Nesil taşması” reddini aynı sözleşmeye bağla.",
      "invariant": "Eski handle yeni nesneye erişmez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_generation"
      },
      "dependencies": [
        "K1305"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Aynı slot üç close open",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Stale erişim yan etkisiz ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_generation_positive",
        "negativeName": "os_handles_generation_negative",
        "expectedMarker": "TURKOS/OS/K1310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Eski handle yeni nesneye erişmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1306"
    },
    {
      "id": "K1307",
      "number": 1307,
      "phase": 8,
      "module": "handles",
      "feature": "handles.generation",
      "stage": "implementation",
      "title": "Handle nesil tekrar kullanımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Eski handle yeni nesneye erişmez.",
      "action": "kernel/src/runtime/handles.rs hedefinde os_handles_generation yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Eski handle yeni nesneye erişmez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_generation"
      },
      "dependencies": [
        "K1306"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Aynı slot üç close open",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Stale erişim yan etkisiz ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_generation_positive",
        "negativeName": "os_handles_generation_negative",
        "expectedMarker": "TURKOS/OS/K1310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı slot üç close open ile Nesil taşması ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1307"
    },
    {
      "id": "K1308",
      "number": 1308,
      "phase": 8,
      "module": "handles",
      "feature": "handles.generation",
      "stage": "positive",
      "title": "Handle nesil tekrar kullanımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Eski handle yeni nesneye erişmez.",
      "action": "os_handles_generation_positive testini oluştur: “Aynı slot üç close open”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Eski handle yeni nesneye erişmez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_generation"
      },
      "dependencies": [
        "K1307"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Aynı slot üç close open",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Stale erişim yan etkisiz ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_generation_positive",
        "negativeName": "os_handles_generation_negative",
        "expectedMarker": "TURKOS/OS/K1310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı slot üç close open girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1308"
    },
    {
      "id": "K1309",
      "number": 1309,
      "phase": 8,
      "module": "handles",
      "feature": "handles.generation",
      "stage": "negative",
      "title": "Handle nesil tekrar kullanımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Eski handle yeni nesneye erişmez.",
      "action": "os_handles_generation_negative testini oluştur: “Nesil taşması”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Eski handle yeni nesneye erişmez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_generation"
      },
      "dependencies": [
        "K1308"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Aynı slot üç close open",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Stale erişim yan etkisiz ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_generation_positive",
        "negativeName": "os_handles_generation_negative",
        "expectedMarker": "TURKOS/OS/K1310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Nesil taşması karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1309"
    },
    {
      "id": "K1310",
      "number": 1310,
      "phase": 8,
      "module": "handles",
      "feature": "handles.generation",
      "stage": "integration",
      "title": "Handle nesil tekrar kullanımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Eski handle yeni nesneye erişmez.",
      "action": "Tek ürün Image'ında “Stale erişim yan etkisiz ret” kabulünü koştur. scripts/os-acceptance/handles.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Eski handle yeni nesneye erişmez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_generation"
      },
      "dependencies": [
        "K1309"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Aynı slot üç close open",
      "counterexample": "Nesil taşması",
      "guestAcceptance": "Stale erişim yan etkisiz ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_generation_positive",
        "negativeName": "os_handles_generation_negative",
        "expectedMarker": "TURKOS/OS/K1310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Stale erişim yan etkisiz ret; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Nesil taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1310"
    },
    {
      "id": "K1311",
      "number": 1311,
      "phase": 8,
      "module": "handles",
      "feature": "handles.rights",
      "stage": "contract",
      "title": "Hak daraltma ve çoğaltma · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Duplicate hakları genişletemez.",
      "action": "“Hak daraltma ve çoğaltma” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Duplicate hakları genişletemez. “RWdan RO kopya” kabulü ile “ROdan RW isteği” reddini aynı sözleşmeye bağla.",
      "invariant": "Duplicate hakları genişletemez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_rights"
      },
      "dependencies": [
        "K1310"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "RWdan RO kopya",
      "counterexample": "ROdan RW isteği",
      "guestAcceptance": "Yeni kopya yalnız RO işlemler yapar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_rights_positive",
        "negativeName": "os_handles_rights_negative",
        "expectedMarker": "TURKOS/OS/K1315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Duplicate hakları genişletemez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“ROdan RW isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1311"
    },
    {
      "id": "K1312",
      "number": 1312,
      "phase": 8,
      "module": "handles",
      "feature": "handles.rights",
      "stage": "implementation",
      "title": "Hak daraltma ve çoğaltma · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Duplicate hakları genişletemez.",
      "action": "kernel/src/runtime/handles.rs hedefinde os_handles_rights yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Duplicate hakları genişletemez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_rights"
      },
      "dependencies": [
        "K1311"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "RWdan RO kopya",
      "counterexample": "ROdan RW isteği",
      "guestAcceptance": "Yeni kopya yalnız RO işlemler yapar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_rights_positive",
        "negativeName": "os_handles_rights_negative",
        "expectedMarker": "TURKOS/OS/K1315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. RWdan RO kopya ile ROdan RW isteği ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“ROdan RW isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1312"
    },
    {
      "id": "K1313",
      "number": 1313,
      "phase": 8,
      "module": "handles",
      "feature": "handles.rights",
      "stage": "positive",
      "title": "Hak daraltma ve çoğaltma · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Duplicate hakları genişletemez.",
      "action": "os_handles_rights_positive testini oluştur: “RWdan RO kopya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Duplicate hakları genişletemez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_rights"
      },
      "dependencies": [
        "K1312"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "RWdan RO kopya",
      "counterexample": "ROdan RW isteği",
      "guestAcceptance": "Yeni kopya yalnız RO işlemler yapar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_rights_positive",
        "negativeName": "os_handles_rights_negative",
        "expectedMarker": "TURKOS/OS/K1315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; RWdan RO kopya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“ROdan RW isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1313"
    },
    {
      "id": "K1314",
      "number": 1314,
      "phase": 8,
      "module": "handles",
      "feature": "handles.rights",
      "stage": "negative",
      "title": "Hak daraltma ve çoğaltma · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Duplicate hakları genişletemez.",
      "action": "os_handles_rights_negative testini oluştur: “ROdan RW isteği”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Duplicate hakları genişletemez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_rights"
      },
      "dependencies": [
        "K1313"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "RWdan RO kopya",
      "counterexample": "ROdan RW isteği",
      "guestAcceptance": "Yeni kopya yalnız RO işlemler yapar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_rights_positive",
        "negativeName": "os_handles_rights_negative",
        "expectedMarker": "TURKOS/OS/K1315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ROdan RW isteği karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“ROdan RW isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1314"
    },
    {
      "id": "K1315",
      "number": 1315,
      "phase": 8,
      "module": "handles",
      "feature": "handles.rights",
      "stage": "integration",
      "title": "Hak daraltma ve çoğaltma · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Duplicate hakları genişletemez.",
      "action": "Tek ürün Image'ında “Yeni kopya yalnız RO işlemler yapar” kabulünü koştur. scripts/os-acceptance/handles.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Duplicate hakları genişletemez",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_rights"
      },
      "dependencies": [
        "K1314"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "RWdan RO kopya",
      "counterexample": "ROdan RW isteği",
      "guestAcceptance": "Yeni kopya yalnız RO işlemler yapar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_rights_positive",
        "negativeName": "os_handles_rights_negative",
        "expectedMarker": "TURKOS/OS/K1315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni kopya yalnız RO işlemler yapar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“ROdan RW isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1315"
    },
    {
      "id": "K1316",
      "number": 1316,
      "phase": 8,
      "module": "handles",
      "feature": "handles.close",
      "stage": "contract",
      "title": "Son referans nesne kapanışı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Son close kaynak ömrünü bitirir.",
      "action": "“Son referans nesne kapanışı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Son close kaynak ömrünü bitirir. “İki süreçte iki referans” kabulü ile “Wait sırasında son close” reddini aynı sözleşmeye bağla.",
      "invariant": "Son close kaynak ömrünü bitirir",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_close"
      },
      "dependencies": [
        "K1315"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki süreçte iki referans",
      "counterexample": "Wait sırasında son close",
      "guestAcceptance": "Waiter tanımlı closed sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_close_positive",
        "negativeName": "os_handles_close_negative",
        "expectedMarker": "TURKOS/OS/K1320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Son close kaynak ömrünü bitirir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Wait sırasında son close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1316"
    },
    {
      "id": "K1317",
      "number": 1317,
      "phase": 8,
      "module": "handles",
      "feature": "handles.close",
      "stage": "implementation",
      "title": "Son referans nesne kapanışı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Son close kaynak ömrünü bitirir.",
      "action": "kernel/src/runtime/handles.rs hedefinde os_handles_close yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Son close kaynak ömrünü bitirir",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_close"
      },
      "dependencies": [
        "K1316"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki süreçte iki referans",
      "counterexample": "Wait sırasında son close",
      "guestAcceptance": "Waiter tanımlı closed sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_close_positive",
        "negativeName": "os_handles_close_negative",
        "expectedMarker": "TURKOS/OS/K1320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki süreçte iki referans ile Wait sırasında son close ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Wait sırasında son close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1317"
    },
    {
      "id": "K1318",
      "number": 1318,
      "phase": 8,
      "module": "handles",
      "feature": "handles.close",
      "stage": "positive",
      "title": "Son referans nesne kapanışı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Son close kaynak ömrünü bitirir.",
      "action": "os_handles_close_positive testini oluştur: “İki süreçte iki referans”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Son close kaynak ömrünü bitirir",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_close"
      },
      "dependencies": [
        "K1317"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki süreçte iki referans",
      "counterexample": "Wait sırasında son close",
      "guestAcceptance": "Waiter tanımlı closed sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_close_positive",
        "negativeName": "os_handles_close_negative",
        "expectedMarker": "TURKOS/OS/K1320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki süreçte iki referans girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Wait sırasında son close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1318"
    },
    {
      "id": "K1319",
      "number": 1319,
      "phase": 8,
      "module": "handles",
      "feature": "handles.close",
      "stage": "negative",
      "title": "Son referans nesne kapanışı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Son close kaynak ömrünü bitirir.",
      "action": "os_handles_close_negative testini oluştur: “Wait sırasında son close”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Son close kaynak ömrünü bitirir",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_close"
      },
      "dependencies": [
        "K1318"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki süreçte iki referans",
      "counterexample": "Wait sırasında son close",
      "guestAcceptance": "Waiter tanımlı closed sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_close_positive",
        "negativeName": "os_handles_close_negative",
        "expectedMarker": "TURKOS/OS/K1320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Wait sırasında son close karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Wait sırasında son close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1319"
    },
    {
      "id": "K1320",
      "number": 1320,
      "phase": 8,
      "module": "handles",
      "feature": "handles.close",
      "stage": "integration",
      "title": "Son referans nesne kapanışı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Son close kaynak ömrünü bitirir.",
      "action": "Tek ürün Image'ında “Waiter tanımlı closed sonucu alır” kabulünü koştur. scripts/os-acceptance/handles.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Son close kaynak ömrünü bitirir",
      "source": {
        "target": "kernel/src/runtime/handles.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_handles_close"
      },
      "dependencies": [
        "K1319"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki süreçte iki referans",
      "counterexample": "Wait sırasında son close",
      "guestAcceptance": "Waiter tanımlı closed sonucu alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/handles.rs",
        "harness": "scripts/os-acceptance/handles.mjs",
        "positiveName": "os_handles_close_positive",
        "negativeName": "os_handles_close_negative",
        "expectedMarker": "TURKOS/OS/K1320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Waiter tanımlı closed sonucu alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Wait sırasında son close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1320"
    },
    {
      "id": "K1321",
      "number": 1321,
      "phase": 8,
      "module": "channels",
      "feature": "channels.capacity",
      "stage": "contract",
      "title": "Mesaj boyu ve kuyruk sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Büyük mesaj partial enqueue olmaz.",
      "action": "“Mesaj boyu ve kuyruk sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Büyük mesaj partial enqueue olmaz. “Limitte mesaj ve dolu kuyruk” kabulü ile “Limit artı bir payload” reddini aynı sözleşmeye bağla.",
      "invariant": "Büyük mesaj partial enqueue olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_capacity"
      },
      "dependencies": [
        "K1320"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Limitte mesaj ve dolu kuyruk",
      "counterexample": "Limit artı bir payload",
      "guestAcceptance": "EAGAIN ENOSPC ayrı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_capacity_positive",
        "negativeName": "os_channels_capacity_negative",
        "expectedMarker": "TURKOS/OS/K1325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Büyük mesaj partial enqueue olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Limit artı bir payload” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1321"
    },
    {
      "id": "K1322",
      "number": 1322,
      "phase": 8,
      "module": "channels",
      "feature": "channels.capacity",
      "stage": "implementation",
      "title": "Mesaj boyu ve kuyruk sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Büyük mesaj partial enqueue olmaz.",
      "action": "kernel/src/runtime/channels.rs hedefinde os_channels_capacity yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Büyük mesaj partial enqueue olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_capacity"
      },
      "dependencies": [
        "K1321"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Limitte mesaj ve dolu kuyruk",
      "counterexample": "Limit artı bir payload",
      "guestAcceptance": "EAGAIN ENOSPC ayrı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_capacity_positive",
        "negativeName": "os_channels_capacity_negative",
        "expectedMarker": "TURKOS/OS/K1325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Limitte mesaj ve dolu kuyruk ile Limit artı bir payload ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Limit artı bir payload” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1322"
    },
    {
      "id": "K1323",
      "number": 1323,
      "phase": 8,
      "module": "channels",
      "feature": "channels.capacity",
      "stage": "positive",
      "title": "Mesaj boyu ve kuyruk sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Büyük mesaj partial enqueue olmaz.",
      "action": "os_channels_capacity_positive testini oluştur: “Limitte mesaj ve dolu kuyruk”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Büyük mesaj partial enqueue olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_capacity"
      },
      "dependencies": [
        "K1322"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Limitte mesaj ve dolu kuyruk",
      "counterexample": "Limit artı bir payload",
      "guestAcceptance": "EAGAIN ENOSPC ayrı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_capacity_positive",
        "negativeName": "os_channels_capacity_negative",
        "expectedMarker": "TURKOS/OS/K1325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Limitte mesaj ve dolu kuyruk girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Limit artı bir payload” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1323"
    },
    {
      "id": "K1324",
      "number": 1324,
      "phase": 8,
      "module": "channels",
      "feature": "channels.capacity",
      "stage": "negative",
      "title": "Mesaj boyu ve kuyruk sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Büyük mesaj partial enqueue olmaz.",
      "action": "os_channels_capacity_negative testini oluştur: “Limit artı bir payload”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Büyük mesaj partial enqueue olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_capacity"
      },
      "dependencies": [
        "K1323"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Limitte mesaj ve dolu kuyruk",
      "counterexample": "Limit artı bir payload",
      "guestAcceptance": "EAGAIN ENOSPC ayrı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_capacity_positive",
        "negativeName": "os_channels_capacity_negative",
        "expectedMarker": "TURKOS/OS/K1325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Limit artı bir payload karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Limit artı bir payload” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1324"
    },
    {
      "id": "K1325",
      "number": 1325,
      "phase": 8,
      "module": "channels",
      "feature": "channels.capacity",
      "stage": "integration",
      "title": "Mesaj boyu ve kuyruk sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Büyük mesaj partial enqueue olmaz.",
      "action": "Tek ürün Image'ında “EAGAIN ENOSPC ayrı görünür” kabulünü koştur. scripts/os-acceptance/channels.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Büyük mesaj partial enqueue olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_capacity"
      },
      "dependencies": [
        "K1324"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Limitte mesaj ve dolu kuyruk",
      "counterexample": "Limit artı bir payload",
      "guestAcceptance": "EAGAIN ENOSPC ayrı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_capacity_positive",
        "negativeName": "os_channels_capacity_negative",
        "expectedMarker": "TURKOS/OS/K1325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EAGAIN ENOSPC ayrı görünür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Limit artı bir payload” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1325"
    },
    {
      "id": "K1326",
      "number": 1326,
      "phase": 8,
      "module": "channels",
      "feature": "channels.copy",
      "stage": "contract",
      "title": "Sahipli mesaj kopyası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Gönderici buffer değişimi mesajı bozmaz.",
      "action": "“Sahipli mesaj kopyası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Gönderici buffer değişimi mesajı bozmaz. “Send ardından buffer overwrite” kabulü ile “Yabancı kullanıcı pointer” reddini aynı sözleşmeye bağla.",
      "invariant": "Gönderici buffer değişimi mesajı bozmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_copy"
      },
      "dependencies": [
        "K1325"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Send ardından buffer overwrite",
      "counterexample": "Yabancı kullanıcı pointer",
      "guestAcceptance": "Alıcı özgün mesaj hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_copy_positive",
        "negativeName": "os_channels_copy_negative",
        "expectedMarker": "TURKOS/OS/K1330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Gönderici buffer değişimi mesajı bozmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı kullanıcı pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1326"
    },
    {
      "id": "K1327",
      "number": 1327,
      "phase": 8,
      "module": "channels",
      "feature": "channels.copy",
      "stage": "implementation",
      "title": "Sahipli mesaj kopyası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Gönderici buffer değişimi mesajı bozmaz.",
      "action": "kernel/src/runtime/channels.rs hedefinde os_channels_copy yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Gönderici buffer değişimi mesajı bozmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_copy"
      },
      "dependencies": [
        "K1326"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Send ardından buffer overwrite",
      "counterexample": "Yabancı kullanıcı pointer",
      "guestAcceptance": "Alıcı özgün mesaj hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_copy_positive",
        "negativeName": "os_channels_copy_negative",
        "expectedMarker": "TURKOS/OS/K1330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Send ardından buffer overwrite ile Yabancı kullanıcı pointer ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı kullanıcı pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1327"
    },
    {
      "id": "K1328",
      "number": 1328,
      "phase": 8,
      "module": "channels",
      "feature": "channels.copy",
      "stage": "positive",
      "title": "Sahipli mesaj kopyası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Gönderici buffer değişimi mesajı bozmaz.",
      "action": "os_channels_copy_positive testini oluştur: “Send ardından buffer overwrite”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Gönderici buffer değişimi mesajı bozmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_copy"
      },
      "dependencies": [
        "K1327"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Send ardından buffer overwrite",
      "counterexample": "Yabancı kullanıcı pointer",
      "guestAcceptance": "Alıcı özgün mesaj hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_copy_positive",
        "negativeName": "os_channels_copy_negative",
        "expectedMarker": "TURKOS/OS/K1330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Send ardından buffer overwrite girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı kullanıcı pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1328"
    },
    {
      "id": "K1329",
      "number": 1329,
      "phase": 8,
      "module": "channels",
      "feature": "channels.copy",
      "stage": "negative",
      "title": "Sahipli mesaj kopyası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Gönderici buffer değişimi mesajı bozmaz.",
      "action": "os_channels_copy_negative testini oluştur: “Yabancı kullanıcı pointer”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Gönderici buffer değişimi mesajı bozmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_copy"
      },
      "dependencies": [
        "K1328"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Send ardından buffer overwrite",
      "counterexample": "Yabancı kullanıcı pointer",
      "guestAcceptance": "Alıcı özgün mesaj hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_copy_positive",
        "negativeName": "os_channels_copy_negative",
        "expectedMarker": "TURKOS/OS/K1330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı kullanıcı pointer karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı kullanıcı pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1329"
    },
    {
      "id": "K1330",
      "number": 1330,
      "phase": 8,
      "module": "channels",
      "feature": "channels.copy",
      "stage": "integration",
      "title": "Sahipli mesaj kopyası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Gönderici buffer değişimi mesajı bozmaz.",
      "action": "Tek ürün Image'ında “Alıcı özgün mesaj hashini alır” kabulünü koştur. scripts/os-acceptance/channels.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Gönderici buffer değişimi mesajı bozmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_copy"
      },
      "dependencies": [
        "K1329"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Send ardından buffer overwrite",
      "counterexample": "Yabancı kullanıcı pointer",
      "guestAcceptance": "Alıcı özgün mesaj hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_copy_positive",
        "negativeName": "os_channels_copy_negative",
        "expectedMarker": "TURKOS/OS/K1330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Alıcı özgün mesaj hashini alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı kullanıcı pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1330"
    },
    {
      "id": "K1331",
      "number": 1331,
      "phase": 8,
      "module": "channels",
      "feature": "channels.transfer",
      "stage": "contract",
      "title": "Mesajla handle devri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Transfer ya tamamen olur ya olmaz.",
      "action": "“Mesajla handle devri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Transfer ya tamamen olur ya olmaz. “İki yetkili handle” kabulü ile “İkinci handle stale” reddini aynı sözleşmeye bağla.",
      "invariant": "Transfer ya tamamen olur ya olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_transfer"
      },
      "dependencies": [
        "K1330"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki yetkili handle",
      "counterexample": "İkinci handle stale",
      "guestAcceptance": "Gönderici ve alıcı tabloları aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_transfer_positive",
        "negativeName": "os_channels_transfer_negative",
        "expectedMarker": "TURKOS/OS/K1335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Transfer ya tamamen olur ya olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İkinci handle stale” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1331"
    },
    {
      "id": "K1332",
      "number": 1332,
      "phase": 8,
      "module": "channels",
      "feature": "channels.transfer",
      "stage": "implementation",
      "title": "Mesajla handle devri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Transfer ya tamamen olur ya olmaz.",
      "action": "kernel/src/runtime/channels.rs hedefinde os_channels_transfer yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Transfer ya tamamen olur ya olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_transfer"
      },
      "dependencies": [
        "K1331"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki yetkili handle",
      "counterexample": "İkinci handle stale",
      "guestAcceptance": "Gönderici ve alıcı tabloları aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_transfer_positive",
        "negativeName": "os_channels_transfer_negative",
        "expectedMarker": "TURKOS/OS/K1335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki yetkili handle ile İkinci handle stale ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İkinci handle stale” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1332"
    },
    {
      "id": "K1333",
      "number": 1333,
      "phase": 8,
      "module": "channels",
      "feature": "channels.transfer",
      "stage": "positive",
      "title": "Mesajla handle devri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Transfer ya tamamen olur ya olmaz.",
      "action": "os_channels_transfer_positive testini oluştur: “İki yetkili handle”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Transfer ya tamamen olur ya olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_transfer"
      },
      "dependencies": [
        "K1332"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki yetkili handle",
      "counterexample": "İkinci handle stale",
      "guestAcceptance": "Gönderici ve alıcı tabloları aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_transfer_positive",
        "negativeName": "os_channels_transfer_negative",
        "expectedMarker": "TURKOS/OS/K1335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki yetkili handle girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İkinci handle stale” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1333"
    },
    {
      "id": "K1334",
      "number": 1334,
      "phase": 8,
      "module": "channels",
      "feature": "channels.transfer",
      "stage": "negative",
      "title": "Mesajla handle devri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Transfer ya tamamen olur ya olmaz.",
      "action": "os_channels_transfer_negative testini oluştur: “İkinci handle stale”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Transfer ya tamamen olur ya olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_transfer"
      },
      "dependencies": [
        "K1333"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki yetkili handle",
      "counterexample": "İkinci handle stale",
      "guestAcceptance": "Gönderici ve alıcı tabloları aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_transfer_positive",
        "negativeName": "os_channels_transfer_negative",
        "expectedMarker": "TURKOS/OS/K1335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İkinci handle stale karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İkinci handle stale” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1334"
    },
    {
      "id": "K1335",
      "number": 1335,
      "phase": 8,
      "module": "channels",
      "feature": "channels.transfer",
      "stage": "integration",
      "title": "Mesajla handle devri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Transfer ya tamamen olur ya olmaz.",
      "action": "Tek ürün Image'ında “Gönderici ve alıcı tabloları aynı kalır” kabulünü koştur. scripts/os-acceptance/channels.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Transfer ya tamamen olur ya olmaz",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_transfer"
      },
      "dependencies": [
        "K1334"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki yetkili handle",
      "counterexample": "İkinci handle stale",
      "guestAcceptance": "Gönderici ve alıcı tabloları aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_transfer_positive",
        "negativeName": "os_channels_transfer_negative",
        "expectedMarker": "TURKOS/OS/K1335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Gönderici ve alıcı tabloları aynı kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İkinci handle stale” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1335"
    },
    {
      "id": "K1336",
      "number": 1336,
      "phase": 8,
      "module": "channels",
      "feature": "channels.peer_death",
      "stage": "contract",
      "title": "Eş ölümü ve kapalı kanal · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ölü peer mesajı başarı diye verilmez.",
      "action": "“Eş ölümü ve kapalı kanal” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ölü peer mesajı başarı diye verilmez. “Peer kuyruk boşken çıkar” kabulü ile “Ölü nesil yeniden send” reddini aynı sözleşmeye bağla.",
      "invariant": "Ölü peer mesajı başarı diye verilmez",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_peer_death"
      },
      "dependencies": [
        "K1335"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Peer kuyruk boşken çıkar",
      "counterexample": "Ölü nesil yeniden send",
      "guestAcceptance": "Alıcı closed sonucu ile devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_peer_death_positive",
        "negativeName": "os_channels_peer_death_negative",
        "expectedMarker": "TURKOS/OS/K1340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ölü peer mesajı başarı diye verilmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ölü nesil yeniden send” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1336"
    },
    {
      "id": "K1337",
      "number": 1337,
      "phase": 8,
      "module": "channels",
      "feature": "channels.peer_death",
      "stage": "implementation",
      "title": "Eş ölümü ve kapalı kanal · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ölü peer mesajı başarı diye verilmez.",
      "action": "kernel/src/runtime/channels.rs hedefinde os_channels_peer_death yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ölü peer mesajı başarı diye verilmez",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_peer_death"
      },
      "dependencies": [
        "K1336"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Peer kuyruk boşken çıkar",
      "counterexample": "Ölü nesil yeniden send",
      "guestAcceptance": "Alıcı closed sonucu ile devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_peer_death_positive",
        "negativeName": "os_channels_peer_death_negative",
        "expectedMarker": "TURKOS/OS/K1340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Peer kuyruk boşken çıkar ile Ölü nesil yeniden send ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ölü nesil yeniden send” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1337"
    },
    {
      "id": "K1338",
      "number": 1338,
      "phase": 8,
      "module": "channels",
      "feature": "channels.peer_death",
      "stage": "positive",
      "title": "Eş ölümü ve kapalı kanal · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ölü peer mesajı başarı diye verilmez.",
      "action": "os_channels_peer_death_positive testini oluştur: “Peer kuyruk boşken çıkar”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ölü peer mesajı başarı diye verilmez",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_peer_death"
      },
      "dependencies": [
        "K1337"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Peer kuyruk boşken çıkar",
      "counterexample": "Ölü nesil yeniden send",
      "guestAcceptance": "Alıcı closed sonucu ile devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_peer_death_positive",
        "negativeName": "os_channels_peer_death_negative",
        "expectedMarker": "TURKOS/OS/K1340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Peer kuyruk boşken çıkar girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ölü nesil yeniden send” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1338"
    },
    {
      "id": "K1339",
      "number": 1339,
      "phase": 8,
      "module": "channels",
      "feature": "channels.peer_death",
      "stage": "negative",
      "title": "Eş ölümü ve kapalı kanal · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ölü peer mesajı başarı diye verilmez.",
      "action": "os_channels_peer_death_negative testini oluştur: “Ölü nesil yeniden send”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ölü peer mesajı başarı diye verilmez",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_peer_death"
      },
      "dependencies": [
        "K1338"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Peer kuyruk boşken çıkar",
      "counterexample": "Ölü nesil yeniden send",
      "guestAcceptance": "Alıcı closed sonucu ile devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_peer_death_positive",
        "negativeName": "os_channels_peer_death_negative",
        "expectedMarker": "TURKOS/OS/K1340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ölü nesil yeniden send karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ölü nesil yeniden send” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1339"
    },
    {
      "id": "K1340",
      "number": 1340,
      "phase": 8,
      "module": "channels",
      "feature": "channels.peer_death",
      "stage": "integration",
      "title": "Eş ölümü ve kapalı kanal · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ölü peer mesajı başarı diye verilmez.",
      "action": "Tek ürün Image'ında “Alıcı closed sonucu ile devam” kabulünü koştur. scripts/os-acceptance/channels.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ölü peer mesajı başarı diye verilmez",
      "source": {
        "target": "kernel/src/runtime/channels.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_channels_peer_death"
      },
      "dependencies": [
        "K1339"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Peer kuyruk boşken çıkar",
      "counterexample": "Ölü nesil yeniden send",
      "guestAcceptance": "Alıcı closed sonucu ile devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/channels.rs",
        "harness": "scripts/os-acceptance/channels.mjs",
        "positiveName": "os_channels_peer_death_positive",
        "negativeName": "os_channels_peer_death_negative",
        "expectedMarker": "TURKOS/OS/K1340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Alıcı closed sonucu ile devam; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ölü nesil yeniden send” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1340"
    },
    {
      "id": "K1341",
      "number": 1341,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.registration",
      "stage": "contract",
      "title": "Waitset nesne kaydı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Tek waiter aynı nesneyi iki kez eklemez.",
      "action": "“Waitset nesne kaydı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Tek waiter aynı nesneyi iki kez eklemez. “İki kanal bir timer” kabulü ile “Duplicate handle kaydı” reddini aynı sözleşmeye bağla.",
      "invariant": "Tek waiter aynı nesneyi iki kez eklemez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_registration"
      },
      "dependencies": [
        "K1340"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki kanal bir timer",
      "counterexample": "Duplicate handle kaydı",
      "guestAcceptance": "Bir olay bir wake üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_registration_positive",
        "negativeName": "os_waitsets_registration_negative",
        "expectedMarker": "TURKOS/OS/K1345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Tek waiter aynı nesneyi iki kez eklemez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Duplicate handle kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1341"
    },
    {
      "id": "K1342",
      "number": 1342,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.registration",
      "stage": "implementation",
      "title": "Waitset nesne kaydı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Tek waiter aynı nesneyi iki kez eklemez.",
      "action": "kernel/src/runtime/waitsets.rs hedefinde os_waitsets_registration yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Tek waiter aynı nesneyi iki kez eklemez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_registration"
      },
      "dependencies": [
        "K1341"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki kanal bir timer",
      "counterexample": "Duplicate handle kaydı",
      "guestAcceptance": "Bir olay bir wake üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_registration_positive",
        "negativeName": "os_waitsets_registration_negative",
        "expectedMarker": "TURKOS/OS/K1345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki kanal bir timer ile Duplicate handle kaydı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Duplicate handle kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1342"
    },
    {
      "id": "K1343",
      "number": 1343,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.registration",
      "stage": "positive",
      "title": "Waitset nesne kaydı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Tek waiter aynı nesneyi iki kez eklemez.",
      "action": "os_waitsets_registration_positive testini oluştur: “İki kanal bir timer”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Tek waiter aynı nesneyi iki kez eklemez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_registration"
      },
      "dependencies": [
        "K1342"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki kanal bir timer",
      "counterexample": "Duplicate handle kaydı",
      "guestAcceptance": "Bir olay bir wake üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_registration_positive",
        "negativeName": "os_waitsets_registration_negative",
        "expectedMarker": "TURKOS/OS/K1345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki kanal bir timer girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Duplicate handle kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1343"
    },
    {
      "id": "K1344",
      "number": 1344,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.registration",
      "stage": "negative",
      "title": "Waitset nesne kaydı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Tek waiter aynı nesneyi iki kez eklemez.",
      "action": "os_waitsets_registration_negative testini oluştur: “Duplicate handle kaydı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Tek waiter aynı nesneyi iki kez eklemez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_registration"
      },
      "dependencies": [
        "K1343"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki kanal bir timer",
      "counterexample": "Duplicate handle kaydı",
      "guestAcceptance": "Bir olay bir wake üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_registration_positive",
        "negativeName": "os_waitsets_registration_negative",
        "expectedMarker": "TURKOS/OS/K1345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Duplicate handle kaydı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Duplicate handle kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1344"
    },
    {
      "id": "K1345",
      "number": 1345,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.registration",
      "stage": "integration",
      "title": "Waitset nesne kaydı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Tek waiter aynı nesneyi iki kez eklemez.",
      "action": "Tek ürün Image'ında “Bir olay bir wake üretir” kabulünü koştur. scripts/os-acceptance/waitsets.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Tek waiter aynı nesneyi iki kez eklemez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_registration"
      },
      "dependencies": [
        "K1344"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İki kanal bir timer",
      "counterexample": "Duplicate handle kaydı",
      "guestAcceptance": "Bir olay bir wake üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_registration_positive",
        "negativeName": "os_waitsets_registration_negative",
        "expectedMarker": "TURKOS/OS/K1345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir olay bir wake üretir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Duplicate handle kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1345"
    },
    {
      "id": "K1346",
      "number": 1346,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.readiness",
      "stage": "contract",
      "title": "Seviye tetiklenen readiness · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Okunabilir nesne olay kaybetmez.",
      "action": "“Seviye tetiklenen readiness” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Okunabilir nesne olay kaybetmez. “Okunmamış iki mesaj” kabulü ile “Event teslimi readinessı siler” reddini aynı sözleşmeye bağla.",
      "invariant": "Okunabilir nesne olay kaybetmez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_readiness"
      },
      "dependencies": [
        "K1345"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Okunmamış iki mesaj",
      "counterexample": "Event teslimi readinessı siler",
      "guestAcceptance": "Drain bitene kadar tekrar hazır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_readiness_positive",
        "negativeName": "os_waitsets_readiness_negative",
        "expectedMarker": "TURKOS/OS/K1350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Okunabilir nesne olay kaybetmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Event teslimi readinessı siler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1346"
    },
    {
      "id": "K1347",
      "number": 1347,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.readiness",
      "stage": "implementation",
      "title": "Seviye tetiklenen readiness · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Okunabilir nesne olay kaybetmez.",
      "action": "kernel/src/runtime/waitsets.rs hedefinde os_waitsets_readiness yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Okunabilir nesne olay kaybetmez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_readiness"
      },
      "dependencies": [
        "K1346"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Okunmamış iki mesaj",
      "counterexample": "Event teslimi readinessı siler",
      "guestAcceptance": "Drain bitene kadar tekrar hazır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_readiness_positive",
        "negativeName": "os_waitsets_readiness_negative",
        "expectedMarker": "TURKOS/OS/K1350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Okunmamış iki mesaj ile Event teslimi readinessı siler ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Event teslimi readinessı siler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1347"
    },
    {
      "id": "K1348",
      "number": 1348,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.readiness",
      "stage": "positive",
      "title": "Seviye tetiklenen readiness · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Okunabilir nesne olay kaybetmez.",
      "action": "os_waitsets_readiness_positive testini oluştur: “Okunmamış iki mesaj”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Okunabilir nesne olay kaybetmez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_readiness"
      },
      "dependencies": [
        "K1347"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Okunmamış iki mesaj",
      "counterexample": "Event teslimi readinessı siler",
      "guestAcceptance": "Drain bitene kadar tekrar hazır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_readiness_positive",
        "negativeName": "os_waitsets_readiness_negative",
        "expectedMarker": "TURKOS/OS/K1350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Okunmamış iki mesaj girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Event teslimi readinessı siler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1348"
    },
    {
      "id": "K1349",
      "number": 1349,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.readiness",
      "stage": "negative",
      "title": "Seviye tetiklenen readiness · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Okunabilir nesne olay kaybetmez.",
      "action": "os_waitsets_readiness_negative testini oluştur: “Event teslimi readinessı siler”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Okunabilir nesne olay kaybetmez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_readiness"
      },
      "dependencies": [
        "K1348"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Okunmamış iki mesaj",
      "counterexample": "Event teslimi readinessı siler",
      "guestAcceptance": "Drain bitene kadar tekrar hazır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_readiness_positive",
        "negativeName": "os_waitsets_readiness_negative",
        "expectedMarker": "TURKOS/OS/K1350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Event teslimi readinessı siler karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Event teslimi readinessı siler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1349"
    },
    {
      "id": "K1350",
      "number": 1350,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.readiness",
      "stage": "integration",
      "title": "Seviye tetiklenen readiness · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Okunabilir nesne olay kaybetmez.",
      "action": "Tek ürün Image'ında “Drain bitene kadar tekrar hazır” kabulünü koştur. scripts/os-acceptance/waitsets.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Okunabilir nesne olay kaybetmez",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_readiness"
      },
      "dependencies": [
        "K1349"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Okunmamış iki mesaj",
      "counterexample": "Event teslimi readinessı siler",
      "guestAcceptance": "Drain bitene kadar tekrar hazır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_readiness_positive",
        "negativeName": "os_waitsets_readiness_negative",
        "expectedMarker": "TURKOS/OS/K1350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Drain bitene kadar tekrar hazır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Event teslimi readinessı siler” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1350"
    },
    {
      "id": "K1351",
      "number": 1351,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.deadlines",
      "stage": "contract",
      "title": "Waitset timeout iptal yarışı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Olay ve timeout tek sonuç seçer.",
      "action": "“Waitset timeout iptal yarışı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Olay ve timeout tek sonuç seçer. “Mesaj deadline tickinde” kabulü ile “Ölü timer eski wake” reddini aynı sözleşmeye bağla.",
      "invariant": "Olay ve timeout tek sonuç seçer",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_deadlines"
      },
      "dependencies": [
        "K1350"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Mesaj deadline tickinde",
      "counterexample": "Ölü timer eski wake",
      "guestAcceptance": "Tek completion ve kayıt temizliği",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_deadlines_positive",
        "negativeName": "os_waitsets_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K1355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Olay ve timeout tek sonuç seçer kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ölü timer eski wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1351"
    },
    {
      "id": "K1352",
      "number": 1352,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.deadlines",
      "stage": "implementation",
      "title": "Waitset timeout iptal yarışı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Olay ve timeout tek sonuç seçer.",
      "action": "kernel/src/runtime/waitsets.rs hedefinde os_waitsets_deadlines yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Olay ve timeout tek sonuç seçer",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_deadlines"
      },
      "dependencies": [
        "K1351"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Mesaj deadline tickinde",
      "counterexample": "Ölü timer eski wake",
      "guestAcceptance": "Tek completion ve kayıt temizliği",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_deadlines_positive",
        "negativeName": "os_waitsets_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K1355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Mesaj deadline tickinde ile Ölü timer eski wake ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ölü timer eski wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1352"
    },
    {
      "id": "K1353",
      "number": 1353,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.deadlines",
      "stage": "positive",
      "title": "Waitset timeout iptal yarışı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Olay ve timeout tek sonuç seçer.",
      "action": "os_waitsets_deadlines_positive testini oluştur: “Mesaj deadline tickinde”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Olay ve timeout tek sonuç seçer",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_deadlines"
      },
      "dependencies": [
        "K1352"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Mesaj deadline tickinde",
      "counterexample": "Ölü timer eski wake",
      "guestAcceptance": "Tek completion ve kayıt temizliği",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_deadlines_positive",
        "negativeName": "os_waitsets_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K1355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Mesaj deadline tickinde girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ölü timer eski wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1353"
    },
    {
      "id": "K1354",
      "number": 1354,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.deadlines",
      "stage": "negative",
      "title": "Waitset timeout iptal yarışı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Olay ve timeout tek sonuç seçer.",
      "action": "os_waitsets_deadlines_negative testini oluştur: “Ölü timer eski wake”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Olay ve timeout tek sonuç seçer",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_deadlines"
      },
      "dependencies": [
        "K1353"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Mesaj deadline tickinde",
      "counterexample": "Ölü timer eski wake",
      "guestAcceptance": "Tek completion ve kayıt temizliği",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_deadlines_positive",
        "negativeName": "os_waitsets_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K1355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ölü timer eski wake karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ölü timer eski wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1354"
    },
    {
      "id": "K1355",
      "number": 1355,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.deadlines",
      "stage": "integration",
      "title": "Waitset timeout iptal yarışı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Olay ve timeout tek sonuç seçer.",
      "action": "Tek ürün Image'ında “Tek completion ve kayıt temizliği” kabulünü koştur. scripts/os-acceptance/waitsets.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Olay ve timeout tek sonuç seçer",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_deadlines"
      },
      "dependencies": [
        "K1354"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Mesaj deadline tickinde",
      "counterexample": "Ölü timer eski wake",
      "guestAcceptance": "Tek completion ve kayıt temizliği",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_deadlines_positive",
        "negativeName": "os_waitsets_deadlines_negative",
        "expectedMarker": "TURKOS/OS/K1355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek completion ve kayıt temizliği; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ölü timer eski wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1355"
    },
    {
      "id": "K1356",
      "number": 1356,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.teardown",
      "stage": "contract",
      "title": "Waitset kapatma ömrü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Kapatma bütün abonelikleri söker.",
      "action": "“Waitset kapatma ömrü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kapatma bütün abonelikleri söker. “Üç nesne bağlı waitset” kabulü ile “Peer ölümüyle eşzamanlı close” reddini aynı sözleşmeye bağla.",
      "invariant": "Kapatma bütün abonelikleri söker",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_teardown"
      },
      "dependencies": [
        "K1355"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç nesne bağlı waitset",
      "counterexample": "Peer ölümüyle eşzamanlı close",
      "guestAcceptance": "Kaynak sayaçları başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_teardown_positive",
        "negativeName": "os_waitsets_teardown_negative",
        "expectedMarker": "TURKOS/OS/K1360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kapatma bütün abonelikleri söker kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Peer ölümüyle eşzamanlı close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1356"
    },
    {
      "id": "K1357",
      "number": 1357,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.teardown",
      "stage": "implementation",
      "title": "Waitset kapatma ömrü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Kapatma bütün abonelikleri söker.",
      "action": "kernel/src/runtime/waitsets.rs hedefinde os_waitsets_teardown yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kapatma bütün abonelikleri söker",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_teardown"
      },
      "dependencies": [
        "K1356"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç nesne bağlı waitset",
      "counterexample": "Peer ölümüyle eşzamanlı close",
      "guestAcceptance": "Kaynak sayaçları başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_teardown_positive",
        "negativeName": "os_waitsets_teardown_negative",
        "expectedMarker": "TURKOS/OS/K1360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç nesne bağlı waitset ile Peer ölümüyle eşzamanlı close ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Peer ölümüyle eşzamanlı close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1357"
    },
    {
      "id": "K1358",
      "number": 1358,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.teardown",
      "stage": "positive",
      "title": "Waitset kapatma ömrü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Kapatma bütün abonelikleri söker.",
      "action": "os_waitsets_teardown_positive testini oluştur: “Üç nesne bağlı waitset”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kapatma bütün abonelikleri söker",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_teardown"
      },
      "dependencies": [
        "K1357"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç nesne bağlı waitset",
      "counterexample": "Peer ölümüyle eşzamanlı close",
      "guestAcceptance": "Kaynak sayaçları başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_teardown_positive",
        "negativeName": "os_waitsets_teardown_negative",
        "expectedMarker": "TURKOS/OS/K1360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç nesne bağlı waitset girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Peer ölümüyle eşzamanlı close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1358"
    },
    {
      "id": "K1359",
      "number": 1359,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.teardown",
      "stage": "negative",
      "title": "Waitset kapatma ömrü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Kapatma bütün abonelikleri söker.",
      "action": "os_waitsets_teardown_negative testini oluştur: “Peer ölümüyle eşzamanlı close”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kapatma bütün abonelikleri söker",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_teardown"
      },
      "dependencies": [
        "K1358"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç nesne bağlı waitset",
      "counterexample": "Peer ölümüyle eşzamanlı close",
      "guestAcceptance": "Kaynak sayaçları başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_teardown_positive",
        "negativeName": "os_waitsets_teardown_negative",
        "expectedMarker": "TURKOS/OS/K1360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Peer ölümüyle eşzamanlı close karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Peer ölümüyle eşzamanlı close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1359"
    },
    {
      "id": "K1360",
      "number": 1360,
      "phase": 8,
      "module": "waitsets",
      "feature": "waitsets.teardown",
      "stage": "integration",
      "title": "Waitset kapatma ömrü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Kapatma bütün abonelikleri söker.",
      "action": "Tek ürün Image'ında “Kaynak sayaçları başlangıca döner” kabulünü koştur. scripts/os-acceptance/waitsets.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kapatma bütün abonelikleri söker",
      "source": {
        "target": "kernel/src/runtime/waitsets.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_waitsets_teardown"
      },
      "dependencies": [
        "K1359"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üç nesne bağlı waitset",
      "counterexample": "Peer ölümüyle eşzamanlı close",
      "guestAcceptance": "Kaynak sayaçları başlangıca döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/waitsets.rs",
        "harness": "scripts/os-acceptance/waitsets.mjs",
        "positiveName": "os_waitsets_teardown_positive",
        "negativeName": "os_waitsets_teardown_negative",
        "expectedMarker": "TURKOS/OS/K1360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kaynak sayaçları başlangıca döner; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Peer ölümüyle eşzamanlı close” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1360"
    },
    {
      "id": "K1361",
      "number": 1361,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.create",
      "stage": "contract",
      "title": "Paylaşılan sayfa nesnesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Nesne sayfaları yalnız yetkili süreçte map olur.",
      "action": "“Paylaşılan sayfa nesnesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Nesne sayfaları yalnız yetkili süreçte map olur. “A B ortak iki sayfa” kabulü ile “C izinsiz handle edinir” reddini aynı sözleşmeye bağla.",
      "invariant": "Nesne sayfaları yalnız yetkili süreçte map olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_create"
      },
      "dependencies": [
        "K1360"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "A B ortak iki sayfa",
      "counterexample": "C izinsiz handle edinir",
      "guestAcceptance": "C erişimi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_create_positive",
        "negativeName": "os_shared_memory_create_negative",
        "expectedMarker": "TURKOS/OS/K1365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Nesne sayfaları yalnız yetkili süreçte map olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“C izinsiz handle edinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1361"
    },
    {
      "id": "K1362",
      "number": 1362,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.create",
      "stage": "implementation",
      "title": "Paylaşılan sayfa nesnesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Nesne sayfaları yalnız yetkili süreçte map olur.",
      "action": "kernel/src/runtime/shared_memory.rs hedefinde os_shared_memory_create yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_copy.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Nesne sayfaları yalnız yetkili süreçte map olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_create"
      },
      "dependencies": [
        "K1361"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "A B ortak iki sayfa",
      "counterexample": "C izinsiz handle edinir",
      "guestAcceptance": "C erişimi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_create_positive",
        "negativeName": "os_shared_memory_create_negative",
        "expectedMarker": "TURKOS/OS/K1365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. A B ortak iki sayfa ile C izinsiz handle edinir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“C izinsiz handle edinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1362"
    },
    {
      "id": "K1363",
      "number": 1363,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.create",
      "stage": "positive",
      "title": "Paylaşılan sayfa nesnesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Nesne sayfaları yalnız yetkili süreçte map olur.",
      "action": "os_shared_memory_create_positive testini oluştur: “A B ortak iki sayfa”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Nesne sayfaları yalnız yetkili süreçte map olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_create"
      },
      "dependencies": [
        "K1362"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "A B ortak iki sayfa",
      "counterexample": "C izinsiz handle edinir",
      "guestAcceptance": "C erişimi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_create_positive",
        "negativeName": "os_shared_memory_create_negative",
        "expectedMarker": "TURKOS/OS/K1365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; A B ortak iki sayfa girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“C izinsiz handle edinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1363"
    },
    {
      "id": "K1364",
      "number": 1364,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.create",
      "stage": "negative",
      "title": "Paylaşılan sayfa nesnesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Nesne sayfaları yalnız yetkili süreçte map olur.",
      "action": "os_shared_memory_create_negative testini oluştur: “C izinsiz handle edinir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Nesne sayfaları yalnız yetkili süreçte map olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_create"
      },
      "dependencies": [
        "K1363"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "A B ortak iki sayfa",
      "counterexample": "C izinsiz handle edinir",
      "guestAcceptance": "C erişimi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_create_positive",
        "negativeName": "os_shared_memory_create_negative",
        "expectedMarker": "TURKOS/OS/K1365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "C izinsiz handle edinir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“C izinsiz handle edinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1364"
    },
    {
      "id": "K1365",
      "number": 1365,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.create",
      "stage": "integration",
      "title": "Paylaşılan sayfa nesnesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Nesne sayfaları yalnız yetkili süreçte map olur.",
      "action": "Tek ürün Image'ında “C erişimi reddedilir” kabulünü koştur. scripts/os-acceptance/shared_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Nesne sayfaları yalnız yetkili süreçte map olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_create"
      },
      "dependencies": [
        "K1364"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "A B ortak iki sayfa",
      "counterexample": "C izinsiz handle edinir",
      "guestAcceptance": "C erişimi reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_create_positive",
        "negativeName": "os_shared_memory_create_negative",
        "expectedMarker": "TURKOS/OS/K1365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "C erişimi reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“C izinsiz handle edinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1365"
    },
    {
      "id": "K1366",
      "number": 1366,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.seal",
      "stage": "contract",
      "title": "RO seal ve izin düşürme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Seal sonrası yeni writable map yok.",
      "action": "“RO seal ve izin düşürme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Seal sonrası yeni writable map yok. “Veri hazırlayıp seal” kabulü ile “Seal sonrası RW talebi” reddini aynı sözleşmeye bağla.",
      "invariant": "Seal sonrası yeni writable map yok",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_seal"
      },
      "dependencies": [
        "K1365"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Veri hazırlayıp seal",
      "counterexample": "Seal sonrası RW talebi",
      "guestAcceptance": "B RO okur A tekrar yazamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_seal_positive",
        "negativeName": "os_shared_memory_seal_negative",
        "expectedMarker": "TURKOS/OS/K1370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Seal sonrası yeni writable map yok kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Seal sonrası RW talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1366"
    },
    {
      "id": "K1367",
      "number": 1367,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.seal",
      "stage": "implementation",
      "title": "RO seal ve izin düşürme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Seal sonrası yeni writable map yok.",
      "action": "kernel/src/runtime/shared_memory.rs hedefinde os_shared_memory_seal yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_copy.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Seal sonrası yeni writable map yok",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_seal"
      },
      "dependencies": [
        "K1366"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Veri hazırlayıp seal",
      "counterexample": "Seal sonrası RW talebi",
      "guestAcceptance": "B RO okur A tekrar yazamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_seal_positive",
        "negativeName": "os_shared_memory_seal_negative",
        "expectedMarker": "TURKOS/OS/K1370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Veri hazırlayıp seal ile Seal sonrası RW talebi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Seal sonrası RW talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1367"
    },
    {
      "id": "K1368",
      "number": 1368,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.seal",
      "stage": "positive",
      "title": "RO seal ve izin düşürme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Seal sonrası yeni writable map yok.",
      "action": "os_shared_memory_seal_positive testini oluştur: “Veri hazırlayıp seal”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Seal sonrası yeni writable map yok",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_seal"
      },
      "dependencies": [
        "K1367"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Veri hazırlayıp seal",
      "counterexample": "Seal sonrası RW talebi",
      "guestAcceptance": "B RO okur A tekrar yazamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_seal_positive",
        "negativeName": "os_shared_memory_seal_negative",
        "expectedMarker": "TURKOS/OS/K1370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Veri hazırlayıp seal girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Seal sonrası RW talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1368"
    },
    {
      "id": "K1369",
      "number": 1369,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.seal",
      "stage": "negative",
      "title": "RO seal ve izin düşürme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Seal sonrası yeni writable map yok.",
      "action": "os_shared_memory_seal_negative testini oluştur: “Seal sonrası RW talebi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Seal sonrası yeni writable map yok",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_seal"
      },
      "dependencies": [
        "K1368"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Veri hazırlayıp seal",
      "counterexample": "Seal sonrası RW talebi",
      "guestAcceptance": "B RO okur A tekrar yazamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_seal_positive",
        "negativeName": "os_shared_memory_seal_negative",
        "expectedMarker": "TURKOS/OS/K1370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Seal sonrası RW talebi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Seal sonrası RW talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1369"
    },
    {
      "id": "K1370",
      "number": 1370,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.seal",
      "stage": "integration",
      "title": "RO seal ve izin düşürme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Seal sonrası yeni writable map yok.",
      "action": "Tek ürün Image'ında “B RO okur A tekrar yazamaz” kabulünü koştur. scripts/os-acceptance/shared_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Seal sonrası yeni writable map yok",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_seal"
      },
      "dependencies": [
        "K1369"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Veri hazırlayıp seal",
      "counterexample": "Seal sonrası RW talebi",
      "guestAcceptance": "B RO okur A tekrar yazamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_seal_positive",
        "negativeName": "os_shared_memory_seal_negative",
        "expectedMarker": "TURKOS/OS/K1370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "B RO okur A tekrar yazamaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Seal sonrası RW talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1370"
    },
    {
      "id": "K1371",
      "number": 1371,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.lifetime",
      "stage": "contract",
      "title": "Son map ve referans ömrü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Map ve handle sıfırlanınca free olur.",
      "action": "“Son map ve referans ömrü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Map ve handle sıfırlanınca free olur. “Handle close map canlı” kabulü ile “Map canlıyken backing free” reddini aynı sözleşmeye bağla.",
      "invariant": "Map ve handle sıfırlanınca free olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_lifetime"
      },
      "dependencies": [
        "K1370"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Handle close map canlı",
      "counterexample": "Map canlıyken backing free",
      "guestAcceptance": "Son unmap sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_lifetime_positive",
        "negativeName": "os_shared_memory_lifetime_negative",
        "expectedMarker": "TURKOS/OS/K1375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Map ve handle sıfırlanınca free olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Map canlıyken backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1371"
    },
    {
      "id": "K1372",
      "number": 1372,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.lifetime",
      "stage": "implementation",
      "title": "Son map ve referans ömrü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Map ve handle sıfırlanınca free olur.",
      "action": "kernel/src/runtime/shared_memory.rs hedefinde os_shared_memory_lifetime yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_copy.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Map ve handle sıfırlanınca free olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_lifetime"
      },
      "dependencies": [
        "K1371"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Handle close map canlı",
      "counterexample": "Map canlıyken backing free",
      "guestAcceptance": "Son unmap sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_lifetime_positive",
        "negativeName": "os_shared_memory_lifetime_negative",
        "expectedMarker": "TURKOS/OS/K1375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Handle close map canlı ile Map canlıyken backing free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Map canlıyken backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1372"
    },
    {
      "id": "K1373",
      "number": 1373,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.lifetime",
      "stage": "positive",
      "title": "Son map ve referans ömrü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Map ve handle sıfırlanınca free olur.",
      "action": "os_shared_memory_lifetime_positive testini oluştur: “Handle close map canlı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Map ve handle sıfırlanınca free olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_lifetime"
      },
      "dependencies": [
        "K1372"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Handle close map canlı",
      "counterexample": "Map canlıyken backing free",
      "guestAcceptance": "Son unmap sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_lifetime_positive",
        "negativeName": "os_shared_memory_lifetime_negative",
        "expectedMarker": "TURKOS/OS/K1375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Handle close map canlı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Map canlıyken backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1373"
    },
    {
      "id": "K1374",
      "number": 1374,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.lifetime",
      "stage": "negative",
      "title": "Son map ve referans ömrü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Map ve handle sıfırlanınca free olur.",
      "action": "os_shared_memory_lifetime_negative testini oluştur: “Map canlıyken backing free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Map ve handle sıfırlanınca free olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_lifetime"
      },
      "dependencies": [
        "K1373"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Handle close map canlı",
      "counterexample": "Map canlıyken backing free",
      "guestAcceptance": "Son unmap sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_lifetime_positive",
        "negativeName": "os_shared_memory_lifetime_negative",
        "expectedMarker": "TURKOS/OS/K1375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Map canlıyken backing free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Map canlıyken backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1374"
    },
    {
      "id": "K1375",
      "number": 1375,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.lifetime",
      "stage": "integration",
      "title": "Son map ve referans ömrü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Map ve handle sıfırlanınca free olur.",
      "action": "Tek ürün Image'ında “Son unmap sonrası tek iade” kabulünü koştur. scripts/os-acceptance/shared_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Map ve handle sıfırlanınca free olur",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_lifetime"
      },
      "dependencies": [
        "K1374"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Handle close map canlı",
      "counterexample": "Map canlıyken backing free",
      "guestAcceptance": "Son unmap sonrası tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_lifetime_positive",
        "negativeName": "os_shared_memory_lifetime_negative",
        "expectedMarker": "TURKOS/OS/K1375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son unmap sonrası tek iade; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Map canlıyken backing free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1375"
    },
    {
      "id": "K1376",
      "number": 1376,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.ring",
      "stage": "contract",
      "title": "Paylaşılan kullanıcı ringi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Baş son ve kapasite atomik sınırlıdır.",
      "action": "“Paylaşılan kullanıcı ringi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Baş son ve kapasite atomik sınırlıdır. “Üretici tüketici bin mesaj” kabulü ile “Bozuk producer index” reddini aynı sözleşmeye bağla.",
      "invariant": "Baş son ve kapasite atomik sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_ring"
      },
      "dependencies": [
        "K1375"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üretici tüketici bin mesaj",
      "counterexample": "Bozuk producer index",
      "guestAcceptance": "Ret sınırı kernel belleğini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_ring_positive",
        "negativeName": "os_shared_memory_ring_negative",
        "expectedMarker": "TURKOS/OS/K1380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Baş son ve kapasite atomik sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk producer index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1376"
    },
    {
      "id": "K1377",
      "number": 1377,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.ring",
      "stage": "implementation",
      "title": "Paylaşılan kullanıcı ringi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Baş son ve kapasite atomik sınırlıdır.",
      "action": "kernel/src/runtime/shared_memory.rs hedefinde os_shared_memory_ring yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_copy.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Baş son ve kapasite atomik sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_ring"
      },
      "dependencies": [
        "K1376"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üretici tüketici bin mesaj",
      "counterexample": "Bozuk producer index",
      "guestAcceptance": "Ret sınırı kernel belleğini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_ring_positive",
        "negativeName": "os_shared_memory_ring_negative",
        "expectedMarker": "TURKOS/OS/K1380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üretici tüketici bin mesaj ile Bozuk producer index ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk producer index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1377"
    },
    {
      "id": "K1378",
      "number": 1378,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.ring",
      "stage": "positive",
      "title": "Paylaşılan kullanıcı ringi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Baş son ve kapasite atomik sınırlıdır.",
      "action": "os_shared_memory_ring_positive testini oluştur: “Üretici tüketici bin mesaj”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Baş son ve kapasite atomik sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_ring"
      },
      "dependencies": [
        "K1377"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üretici tüketici bin mesaj",
      "counterexample": "Bozuk producer index",
      "guestAcceptance": "Ret sınırı kernel belleğini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_ring_positive",
        "negativeName": "os_shared_memory_ring_negative",
        "expectedMarker": "TURKOS/OS/K1380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üretici tüketici bin mesaj girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk producer index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1378"
    },
    {
      "id": "K1379",
      "number": 1379,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.ring",
      "stage": "negative",
      "title": "Paylaşılan kullanıcı ringi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Baş son ve kapasite atomik sınırlıdır.",
      "action": "os_shared_memory_ring_negative testini oluştur: “Bozuk producer index”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Baş son ve kapasite atomik sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_ring"
      },
      "dependencies": [
        "K1378"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üretici tüketici bin mesaj",
      "counterexample": "Bozuk producer index",
      "guestAcceptance": "Ret sınırı kernel belleğini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_ring_positive",
        "negativeName": "os_shared_memory_ring_negative",
        "expectedMarker": "TURKOS/OS/K1380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk producer index karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk producer index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1379"
    },
    {
      "id": "K1380",
      "number": 1380,
      "phase": 8,
      "module": "shared_memory",
      "feature": "shared_memory.ring",
      "stage": "integration",
      "title": "Paylaşılan kullanıcı ringi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Baş son ve kapasite atomik sınırlıdır.",
      "action": "Tek ürün Image'ında “Ret sınırı kernel belleğini korur” kabulünü koştur. scripts/os-acceptance/shared_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Baş son ve kapasite atomik sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/shared_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_copy.rs",
        "existingReferenceSha256": "ef72809fda4e2ace4fc92c49401956d8b2730446cc10664289e0ab19e4f78080",
        "symbol": "os_shared_memory_ring"
      },
      "dependencies": [
        "K1379"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Üretici tüketici bin mesaj",
      "counterexample": "Bozuk producer index",
      "guestAcceptance": "Ret sınırı kernel belleğini korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shared_memory.rs",
        "harness": "scripts/os-acceptance/shared_memory.mjs",
        "positiveName": "os_shared_memory_ring_positive",
        "negativeName": "os_shared_memory_ring_negative",
        "expectedMarker": "TURKOS/OS/K1380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sınırı kernel belleğini korur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk producer index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1380"
    },
    {
      "id": "K1381",
      "number": 1381,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.names",
      "stage": "contract",
      "title": "Hizmet adı kayıt sahipliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ad yalnız yetkili publishera bağlanır.",
      "action": "“Hizmet adı kayıt sahipliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ad yalnız yetkili publishera bağlanır. “Console ve file iki ad” kabulü ile “Yabancı aynı adı ele geçirir” reddini aynı sözleşmeye bağla.",
      "invariant": "Ad yalnız yetkili publishera bağlanır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_names"
      },
      "dependencies": [
        "K1380"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Console ve file iki ad",
      "counterexample": "Yabancı aynı adı ele geçirir",
      "guestAcceptance": "Eski publisher etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_names_positive",
        "negativeName": "os_service_registry_names_negative",
        "expectedMarker": "TURKOS/OS/K1385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ad yalnız yetkili publishera bağlanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı aynı adı ele geçirir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1381"
    },
    {
      "id": "K1382",
      "number": 1382,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.names",
      "stage": "implementation",
      "title": "Hizmet adı kayıt sahipliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ad yalnız yetkili publishera bağlanır.",
      "action": "userspace/src/service_registry.rs hedefinde os_service_registry_names yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ad yalnız yetkili publishera bağlanır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_names"
      },
      "dependencies": [
        "K1381"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Console ve file iki ad",
      "counterexample": "Yabancı aynı adı ele geçirir",
      "guestAcceptance": "Eski publisher etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_names_positive",
        "negativeName": "os_service_registry_names_negative",
        "expectedMarker": "TURKOS/OS/K1385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Console ve file iki ad ile Yabancı aynı adı ele geçirir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı aynı adı ele geçirir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1382"
    },
    {
      "id": "K1383",
      "number": 1383,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.names",
      "stage": "positive",
      "title": "Hizmet adı kayıt sahipliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ad yalnız yetkili publishera bağlanır.",
      "action": "os_service_registry_names_positive testini oluştur: “Console ve file iki ad”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ad yalnız yetkili publishera bağlanır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_names"
      },
      "dependencies": [
        "K1382"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Console ve file iki ad",
      "counterexample": "Yabancı aynı adı ele geçirir",
      "guestAcceptance": "Eski publisher etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_names_positive",
        "negativeName": "os_service_registry_names_negative",
        "expectedMarker": "TURKOS/OS/K1385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Console ve file iki ad girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı aynı adı ele geçirir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1383"
    },
    {
      "id": "K1384",
      "number": 1384,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.names",
      "stage": "negative",
      "title": "Hizmet adı kayıt sahipliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ad yalnız yetkili publishera bağlanır.",
      "action": "os_service_registry_names_negative testini oluştur: “Yabancı aynı adı ele geçirir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ad yalnız yetkili publishera bağlanır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_names"
      },
      "dependencies": [
        "K1383"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Console ve file iki ad",
      "counterexample": "Yabancı aynı adı ele geçirir",
      "guestAcceptance": "Eski publisher etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_names_positive",
        "negativeName": "os_service_registry_names_negative",
        "expectedMarker": "TURKOS/OS/K1385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı aynı adı ele geçirir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı aynı adı ele geçirir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1384"
    },
    {
      "id": "K1385",
      "number": 1385,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.names",
      "stage": "integration",
      "title": "Hizmet adı kayıt sahipliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Ad yalnız yetkili publishera bağlanır.",
      "action": "Tek ürün Image'ında “Eski publisher etkilenmez” kabulünü koştur. scripts/os-acceptance/service_registry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ad yalnız yetkili publishera bağlanır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_names"
      },
      "dependencies": [
        "K1384"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Console ve file iki ad",
      "counterexample": "Yabancı aynı adı ele geçirir",
      "guestAcceptance": "Eski publisher etkilenmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_names_positive",
        "negativeName": "os_service_registry_names_negative",
        "expectedMarker": "TURKOS/OS/K1385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski publisher etkilenmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı aynı adı ele geçirir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1385"
    },
    {
      "id": "K1386",
      "number": 1386,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.versions",
      "stage": "contract",
      "title": "Mesaj protokol sürümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Başlık boyu ve sürüm payloadı sınırlar.",
      "action": "“Mesaj protokol sürümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başlık boyu ve sürüm payloadı sınırlar. “V1 request response” kabulü ile “V255 ve kesik başlık” reddini aynı sözleşmeye bağla.",
      "invariant": "Başlık boyu ve sürüm payloadı sınırlar",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_versions"
      },
      "dependencies": [
        "K1385"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "V1 request response",
      "counterexample": "V255 ve kesik başlık",
      "guestAcceptance": "Servis yanlış mesajı paniksiz reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_versions_positive",
        "negativeName": "os_service_registry_versions_negative",
        "expectedMarker": "TURKOS/OS/K1390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başlık boyu ve sürüm payloadı sınırlar kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“V255 ve kesik başlık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1386"
    },
    {
      "id": "K1387",
      "number": 1387,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.versions",
      "stage": "implementation",
      "title": "Mesaj protokol sürümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Başlık boyu ve sürüm payloadı sınırlar.",
      "action": "userspace/src/service_registry.rs hedefinde os_service_registry_versions yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başlık boyu ve sürüm payloadı sınırlar",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_versions"
      },
      "dependencies": [
        "K1386"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "V1 request response",
      "counterexample": "V255 ve kesik başlık",
      "guestAcceptance": "Servis yanlış mesajı paniksiz reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_versions_positive",
        "negativeName": "os_service_registry_versions_negative",
        "expectedMarker": "TURKOS/OS/K1390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. V1 request response ile V255 ve kesik başlık ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“V255 ve kesik başlık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1387"
    },
    {
      "id": "K1388",
      "number": 1388,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.versions",
      "stage": "positive",
      "title": "Mesaj protokol sürümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Başlık boyu ve sürüm payloadı sınırlar.",
      "action": "os_service_registry_versions_positive testini oluştur: “V1 request response”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başlık boyu ve sürüm payloadı sınırlar",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_versions"
      },
      "dependencies": [
        "K1387"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "V1 request response",
      "counterexample": "V255 ve kesik başlık",
      "guestAcceptance": "Servis yanlış mesajı paniksiz reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_versions_positive",
        "negativeName": "os_service_registry_versions_negative",
        "expectedMarker": "TURKOS/OS/K1390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; V1 request response girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“V255 ve kesik başlık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1388"
    },
    {
      "id": "K1389",
      "number": 1389,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.versions",
      "stage": "negative",
      "title": "Mesaj protokol sürümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Başlık boyu ve sürüm payloadı sınırlar.",
      "action": "os_service_registry_versions_negative testini oluştur: “V255 ve kesik başlık”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başlık boyu ve sürüm payloadı sınırlar",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_versions"
      },
      "dependencies": [
        "K1388"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "V1 request response",
      "counterexample": "V255 ve kesik başlık",
      "guestAcceptance": "Servis yanlış mesajı paniksiz reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_versions_positive",
        "negativeName": "os_service_registry_versions_negative",
        "expectedMarker": "TURKOS/OS/K1390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "V255 ve kesik başlık karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“V255 ve kesik başlık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1389"
    },
    {
      "id": "K1390",
      "number": 1390,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.versions",
      "stage": "integration",
      "title": "Mesaj protokol sürümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Başlık boyu ve sürüm payloadı sınırlar.",
      "action": "Tek ürün Image'ında “Servis yanlış mesajı paniksiz reddeder” kabulünü koştur. scripts/os-acceptance/service_registry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başlık boyu ve sürüm payloadı sınırlar",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_versions"
      },
      "dependencies": [
        "K1389"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "V1 request response",
      "counterexample": "V255 ve kesik başlık",
      "guestAcceptance": "Servis yanlış mesajı paniksiz reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_versions_positive",
        "negativeName": "os_service_registry_versions_negative",
        "expectedMarker": "TURKOS/OS/K1390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Servis yanlış mesajı paniksiz reddeder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“V255 ve kesik başlık” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1390"
    },
    {
      "id": "K1391",
      "number": 1391,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.restart",
      "stage": "contract",
      "title": "Hizmet nesli yeniden bağlama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Yeni nesil eski sessionı kabul etmez.",
      "action": "“Hizmet nesli yeniden bağlama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yeni nesil eski sessionı kabul etmez. “Servis kapanır yeni PID başlar” kabulü ile “Eski session replay” reddini aynı sözleşmeye bağla.",
      "invariant": "Yeni nesil eski sessionı kabul etmez",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_restart"
      },
      "dependencies": [
        "K1390"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Servis kapanır yeni PID başlar",
      "counterexample": "Eski session replay",
      "guestAcceptance": "İstemci yeni session edinir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_restart_positive",
        "negativeName": "os_service_registry_restart_negative",
        "expectedMarker": "TURKOS/OS/K1395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yeni nesil eski sessionı kabul etmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1391"
    },
    {
      "id": "K1392",
      "number": 1392,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.restart",
      "stage": "implementation",
      "title": "Hizmet nesli yeniden bağlama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Yeni nesil eski sessionı kabul etmez.",
      "action": "userspace/src/service_registry.rs hedefinde os_service_registry_restart yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yeni nesil eski sessionı kabul etmez",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_restart"
      },
      "dependencies": [
        "K1391"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Servis kapanır yeni PID başlar",
      "counterexample": "Eski session replay",
      "guestAcceptance": "İstemci yeni session edinir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_restart_positive",
        "negativeName": "os_service_registry_restart_negative",
        "expectedMarker": "TURKOS/OS/K1395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Servis kapanır yeni PID başlar ile Eski session replay ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1392"
    },
    {
      "id": "K1393",
      "number": 1393,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.restart",
      "stage": "positive",
      "title": "Hizmet nesli yeniden bağlama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Yeni nesil eski sessionı kabul etmez.",
      "action": "os_service_registry_restart_positive testini oluştur: “Servis kapanır yeni PID başlar”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yeni nesil eski sessionı kabul etmez",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_restart"
      },
      "dependencies": [
        "K1392"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Servis kapanır yeni PID başlar",
      "counterexample": "Eski session replay",
      "guestAcceptance": "İstemci yeni session edinir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_restart_positive",
        "negativeName": "os_service_registry_restart_negative",
        "expectedMarker": "TURKOS/OS/K1395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Servis kapanır yeni PID başlar girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1393"
    },
    {
      "id": "K1394",
      "number": 1394,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.restart",
      "stage": "negative",
      "title": "Hizmet nesli yeniden bağlama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Yeni nesil eski sessionı kabul etmez.",
      "action": "os_service_registry_restart_negative testini oluştur: “Eski session replay”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yeni nesil eski sessionı kabul etmez",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_restart"
      },
      "dependencies": [
        "K1393"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Servis kapanır yeni PID başlar",
      "counterexample": "Eski session replay",
      "guestAcceptance": "İstemci yeni session edinir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_restart_positive",
        "negativeName": "os_service_registry_restart_negative",
        "expectedMarker": "TURKOS/OS/K1395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski session replay karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1394"
    },
    {
      "id": "K1395",
      "number": 1395,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.restart",
      "stage": "integration",
      "title": "Hizmet nesli yeniden bağlama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Yeni nesil eski sessionı kabul etmez.",
      "action": "Tek ürün Image'ında “İstemci yeni session edinir” kabulünü koştur. scripts/os-acceptance/service_registry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yeni nesil eski sessionı kabul etmez",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_restart"
      },
      "dependencies": [
        "K1394"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "Servis kapanır yeni PID başlar",
      "counterexample": "Eski session replay",
      "guestAcceptance": "İstemci yeni session edinir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_restart_positive",
        "negativeName": "os_service_registry_restart_negative",
        "expectedMarker": "TURKOS/OS/K1395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İstemci yeni session edinir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1395"
    },
    {
      "id": "K1396",
      "number": 1396,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.discovery",
      "stage": "contract",
      "title": "Kısıtlı hizmet keşfi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Namespace görünürlüğü principal ile sınırlıdır.",
      "action": "“Kısıtlı hizmet keşfi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Namespace görünürlüğü principal ile sınırlıdır. “İzinli iki hizmet sorgusu” kabulü ile “Yönetim namespace sorgusu” reddini aynı sözleşmeye bağla.",
      "invariant": "Namespace görünürlüğü principal ile sınırlıdır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_discovery"
      },
      "dependencies": [
        "K1395"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İzinli iki hizmet sorgusu",
      "counterexample": "Yönetim namespace sorgusu",
      "guestAcceptance": "Yetkisiz adlar açıklanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_discovery_positive",
        "negativeName": "os_service_registry_discovery_negative",
        "expectedMarker": "TURKOS/OS/K1400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Namespace görünürlüğü principal ile sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yönetim namespace sorgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1396"
    },
    {
      "id": "K1397",
      "number": 1397,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.discovery",
      "stage": "implementation",
      "title": "Kısıtlı hizmet keşfi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Namespace görünürlüğü principal ile sınırlıdır.",
      "action": "userspace/src/service_registry.rs hedefinde os_service_registry_discovery yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Namespace görünürlüğü principal ile sınırlıdır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_discovery"
      },
      "dependencies": [
        "K1396"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İzinli iki hizmet sorgusu",
      "counterexample": "Yönetim namespace sorgusu",
      "guestAcceptance": "Yetkisiz adlar açıklanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_discovery_positive",
        "negativeName": "os_service_registry_discovery_negative",
        "expectedMarker": "TURKOS/OS/K1400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İzinli iki hizmet sorgusu ile Yönetim namespace sorgusu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yönetim namespace sorgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1397"
    },
    {
      "id": "K1398",
      "number": 1398,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.discovery",
      "stage": "positive",
      "title": "Kısıtlı hizmet keşfi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Namespace görünürlüğü principal ile sınırlıdır.",
      "action": "os_service_registry_discovery_positive testini oluştur: “İzinli iki hizmet sorgusu”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Namespace görünürlüğü principal ile sınırlıdır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_discovery"
      },
      "dependencies": [
        "K1397"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İzinli iki hizmet sorgusu",
      "counterexample": "Yönetim namespace sorgusu",
      "guestAcceptance": "Yetkisiz adlar açıklanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_discovery_positive",
        "negativeName": "os_service_registry_discovery_negative",
        "expectedMarker": "TURKOS/OS/K1400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İzinli iki hizmet sorgusu girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yönetim namespace sorgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1398"
    },
    {
      "id": "K1399",
      "number": 1399,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.discovery",
      "stage": "negative",
      "title": "Kısıtlı hizmet keşfi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Namespace görünürlüğü principal ile sınırlıdır.",
      "action": "os_service_registry_discovery_negative testini oluştur: “Yönetim namespace sorgusu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Namespace görünürlüğü principal ile sınırlıdır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_discovery"
      },
      "dependencies": [
        "K1398"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İzinli iki hizmet sorgusu",
      "counterexample": "Yönetim namespace sorgusu",
      "guestAcceptance": "Yetkisiz adlar açıklanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_discovery_positive",
        "negativeName": "os_service_registry_discovery_negative",
        "expectedMarker": "TURKOS/OS/K1400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yönetim namespace sorgusu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yönetim namespace sorgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1399"
    },
    {
      "id": "K1400",
      "number": 1400,
      "phase": 8,
      "module": "service_registry",
      "feature": "service_registry.discovery",
      "stage": "integration",
      "title": "Kısıtlı hizmet keşfi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanıcı servisleri kendi Rust süreçlerinde çalışır. Kernel nesne sahipliği ve izinleri mesajlaşmanın önkoşuludur. Bu hamlenin koruduğu değişmez: Namespace görünürlüğü principal ile sınırlıdır.",
      "action": "Tek ürün Image'ında “Yetkisiz adlar açıklanmaz” kabulünü koştur. scripts/os-acceptance/service_registry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Namespace görünürlüğü principal ile sınırlıdır",
      "source": {
        "target": "userspace/src/service_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_service_registry_discovery"
      },
      "dependencies": [
        "K1399"
      ],
      "phasePrerequisites": [
        7
      ],
      "positive": "İzinli iki hizmet sorgusu",
      "counterexample": "Yönetim namespace sorgusu",
      "guestAcceptance": "Yetkisiz adlar açıklanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_registry.rs",
        "harness": "scripts/os-acceptance/service_registry.mjs",
        "positiveName": "os_service_registry_discovery_positive",
        "negativeName": "os_service_registry_discovery_negative",
        "expectedMarker": "TURKOS/OS/K1400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yetkisiz adlar açıklanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yönetim namespace sorgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-08#k1400"
    },
    {
      "id": "K1401",
      "number": 1401,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.identity",
      "stage": "contract",
      "title": "Aygıt kimliği ve nesli · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Attach detach aynı kimliği diriltmez.",
      "action": "“Aygıt kimliği ve nesli” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Attach detach aynı kimliği diriltmez. “Bir blok bir ağ aygıtı” kabulü ile “Eski device handle” reddini aynı sözleşmeye bağla.",
      "invariant": "Attach detach aynı kimliği diriltmez",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_identity"
      },
      "dependencies": [],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir blok bir ağ aygıtı",
      "counterexample": "Eski device handle",
      "guestAcceptance": "Yeniden bağlamada yeni nesil",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_identity_positive",
        "negativeName": "os_device_registry_identity_negative",
        "expectedMarker": "TURKOS/OS/K1405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Attach detach aynı kimliği diriltmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski device handle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1401"
    },
    {
      "id": "K1402",
      "number": 1402,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.identity",
      "stage": "implementation",
      "title": "Aygıt kimliği ve nesli · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Attach detach aynı kimliği diriltmez.",
      "action": "kernel/src/runtime/device_registry.rs hedefinde os_device_registry_identity yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Attach detach aynı kimliği diriltmez",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_identity"
      },
      "dependencies": [
        "K1401"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir blok bir ağ aygıtı",
      "counterexample": "Eski device handle",
      "guestAcceptance": "Yeniden bağlamada yeni nesil",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_identity_positive",
        "negativeName": "os_device_registry_identity_negative",
        "expectedMarker": "TURKOS/OS/K1405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir blok bir ağ aygıtı ile Eski device handle ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski device handle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1402"
    },
    {
      "id": "K1403",
      "number": 1403,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.identity",
      "stage": "positive",
      "title": "Aygıt kimliği ve nesli · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Attach detach aynı kimliği diriltmez.",
      "action": "os_device_registry_identity_positive testini oluştur: “Bir blok bir ağ aygıtı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Attach detach aynı kimliği diriltmez",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_identity"
      },
      "dependencies": [
        "K1402"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir blok bir ağ aygıtı",
      "counterexample": "Eski device handle",
      "guestAcceptance": "Yeniden bağlamada yeni nesil",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_identity_positive",
        "negativeName": "os_device_registry_identity_negative",
        "expectedMarker": "TURKOS/OS/K1405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir blok bir ağ aygıtı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski device handle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1403"
    },
    {
      "id": "K1404",
      "number": 1404,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.identity",
      "stage": "negative",
      "title": "Aygıt kimliği ve nesli · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Attach detach aynı kimliği diriltmez.",
      "action": "os_device_registry_identity_negative testini oluştur: “Eski device handle”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Attach detach aynı kimliği diriltmez",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_identity"
      },
      "dependencies": [
        "K1403"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir blok bir ağ aygıtı",
      "counterexample": "Eski device handle",
      "guestAcceptance": "Yeniden bağlamada yeni nesil",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_identity_positive",
        "negativeName": "os_device_registry_identity_negative",
        "expectedMarker": "TURKOS/OS/K1405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski device handle karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski device handle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1404"
    },
    {
      "id": "K1405",
      "number": 1405,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.identity",
      "stage": "integration",
      "title": "Aygıt kimliği ve nesli · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Attach detach aynı kimliği diriltmez.",
      "action": "Tek ürün Image'ında “Yeniden bağlamada yeni nesil” kabulünü koştur. scripts/os-acceptance/device_registry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Attach detach aynı kimliği diriltmez",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_identity"
      },
      "dependencies": [
        "K1404"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir blok bir ağ aygıtı",
      "counterexample": "Eski device handle",
      "guestAcceptance": "Yeniden bağlamada yeni nesil",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_identity_positive",
        "negativeName": "os_device_registry_identity_negative",
        "expectedMarker": "TURKOS/OS/K1405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeniden bağlamada yeni nesil; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski device handle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1405"
    },
    {
      "id": "K1406",
      "number": 1406,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.resources",
      "stage": "contract",
      "title": "Aygıt kaynak sahipliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: MMIO IRQ DMA tek sahip taşır.",
      "action": "“Aygıt kaynak sahipliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: MMIO IRQ DMA tek sahip taşır. “Ayrık aygıt kaynakları” kabulü ile “İki BAR aynı aralığı ister” reddini aynı sözleşmeye bağla.",
      "invariant": "MMIO IRQ DMA tek sahip taşır",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_resources"
      },
      "dependencies": [
        "K1405"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Ayrık aygıt kaynakları",
      "counterexample": "İki BAR aynı aralığı ister",
      "guestAcceptance": "Çakışan attach geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_resources_positive",
        "negativeName": "os_device_registry_resources_negative",
        "expectedMarker": "TURKOS/OS/K1410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu MMIO IRQ DMA tek sahip taşır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki BAR aynı aralığı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1406"
    },
    {
      "id": "K1407",
      "number": 1407,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.resources",
      "stage": "implementation",
      "title": "Aygıt kaynak sahipliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: MMIO IRQ DMA tek sahip taşır.",
      "action": "kernel/src/runtime/device_registry.rs hedefinde os_device_registry_resources yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "MMIO IRQ DMA tek sahip taşır",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_resources"
      },
      "dependencies": [
        "K1406"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Ayrık aygıt kaynakları",
      "counterexample": "İki BAR aynı aralığı ister",
      "guestAcceptance": "Çakışan attach geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_resources_positive",
        "negativeName": "os_device_registry_resources_negative",
        "expectedMarker": "TURKOS/OS/K1410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Ayrık aygıt kaynakları ile İki BAR aynı aralığı ister ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki BAR aynı aralığı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1407"
    },
    {
      "id": "K1408",
      "number": 1408,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.resources",
      "stage": "positive",
      "title": "Aygıt kaynak sahipliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: MMIO IRQ DMA tek sahip taşır.",
      "action": "os_device_registry_resources_positive testini oluştur: “Ayrık aygıt kaynakları”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "MMIO IRQ DMA tek sahip taşır",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_resources"
      },
      "dependencies": [
        "K1407"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Ayrık aygıt kaynakları",
      "counterexample": "İki BAR aynı aralığı ister",
      "guestAcceptance": "Çakışan attach geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_resources_positive",
        "negativeName": "os_device_registry_resources_negative",
        "expectedMarker": "TURKOS/OS/K1410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Ayrık aygıt kaynakları girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki BAR aynı aralığı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1408"
    },
    {
      "id": "K1409",
      "number": 1409,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.resources",
      "stage": "negative",
      "title": "Aygıt kaynak sahipliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: MMIO IRQ DMA tek sahip taşır.",
      "action": "os_device_registry_resources_negative testini oluştur: “İki BAR aynı aralığı ister”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "MMIO IRQ DMA tek sahip taşır",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_resources"
      },
      "dependencies": [
        "K1408"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Ayrık aygıt kaynakları",
      "counterexample": "İki BAR aynı aralığı ister",
      "guestAcceptance": "Çakışan attach geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_resources_positive",
        "negativeName": "os_device_registry_resources_negative",
        "expectedMarker": "TURKOS/OS/K1410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki BAR aynı aralığı ister karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki BAR aynı aralığı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1409"
    },
    {
      "id": "K1410",
      "number": 1410,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.resources",
      "stage": "integration",
      "title": "Aygıt kaynak sahipliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: MMIO IRQ DMA tek sahip taşır.",
      "action": "Tek ürün Image'ında “Çakışan attach geri alınır” kabulünü koştur. scripts/os-acceptance/device_registry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "MMIO IRQ DMA tek sahip taşır",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_resources"
      },
      "dependencies": [
        "K1409"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Ayrık aygıt kaynakları",
      "counterexample": "İki BAR aynı aralığı ister",
      "guestAcceptance": "Çakışan attach geri alınır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_resources_positive",
        "negativeName": "os_device_registry_resources_negative",
        "expectedMarker": "TURKOS/OS/K1410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çakışan attach geri alınır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki BAR aynı aralığı ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1410"
    },
    {
      "id": "K1411",
      "number": 1411,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.driver_match",
      "stage": "contract",
      "title": "Driver eşleştirme tablosu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Uyumsuz sürücü yanlış aygıta bağlanmaz.",
      "action": "“Driver eşleştirme tablosu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Uyumsuz sürücü yanlış aygıta bağlanmaz. “Bilinen vendor device class” kabulü ile “Desteksiz class” reddini aynı sözleşmeye bağla.",
      "invariant": "Uyumsuz sürücü yanlış aygıta bağlanmaz",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_driver_match"
      },
      "dependencies": [
        "K1410"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen vendor device class",
      "counterexample": "Desteksiz class",
      "guestAcceptance": "Açık unsupported tanısı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_driver_match_positive",
        "negativeName": "os_device_registry_driver_match_negative",
        "expectedMarker": "TURKOS/OS/K1415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Uyumsuz sürücü yanlış aygıta bağlanmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Desteksiz class” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1411"
    },
    {
      "id": "K1412",
      "number": 1412,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.driver_match",
      "stage": "implementation",
      "title": "Driver eşleştirme tablosu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Uyumsuz sürücü yanlış aygıta bağlanmaz.",
      "action": "kernel/src/runtime/device_registry.rs hedefinde os_device_registry_driver_match yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Uyumsuz sürücü yanlış aygıta bağlanmaz",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_driver_match"
      },
      "dependencies": [
        "K1411"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen vendor device class",
      "counterexample": "Desteksiz class",
      "guestAcceptance": "Açık unsupported tanısı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_driver_match_positive",
        "negativeName": "os_device_registry_driver_match_negative",
        "expectedMarker": "TURKOS/OS/K1415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen vendor device class ile Desteksiz class ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Desteksiz class” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1412"
    },
    {
      "id": "K1413",
      "number": 1413,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.driver_match",
      "stage": "positive",
      "title": "Driver eşleştirme tablosu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Uyumsuz sürücü yanlış aygıta bağlanmaz.",
      "action": "os_device_registry_driver_match_positive testini oluştur: “Bilinen vendor device class”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Uyumsuz sürücü yanlış aygıta bağlanmaz",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_driver_match"
      },
      "dependencies": [
        "K1412"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen vendor device class",
      "counterexample": "Desteksiz class",
      "guestAcceptance": "Açık unsupported tanısı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_driver_match_positive",
        "negativeName": "os_device_registry_driver_match_negative",
        "expectedMarker": "TURKOS/OS/K1415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen vendor device class girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Desteksiz class” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1413"
    },
    {
      "id": "K1414",
      "number": 1414,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.driver_match",
      "stage": "negative",
      "title": "Driver eşleştirme tablosu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Uyumsuz sürücü yanlış aygıta bağlanmaz.",
      "action": "os_device_registry_driver_match_negative testini oluştur: “Desteksiz class”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Uyumsuz sürücü yanlış aygıta bağlanmaz",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_driver_match"
      },
      "dependencies": [
        "K1413"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen vendor device class",
      "counterexample": "Desteksiz class",
      "guestAcceptance": "Açık unsupported tanısı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_driver_match_positive",
        "negativeName": "os_device_registry_driver_match_negative",
        "expectedMarker": "TURKOS/OS/K1415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Desteksiz class karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Desteksiz class” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1414"
    },
    {
      "id": "K1415",
      "number": 1415,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.driver_match",
      "stage": "integration",
      "title": "Driver eşleştirme tablosu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Uyumsuz sürücü yanlış aygıta bağlanmaz.",
      "action": "Tek ürün Image'ında “Açık unsupported tanısı” kabulünü koştur. scripts/os-acceptance/device_registry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Uyumsuz sürücü yanlış aygıta bağlanmaz",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_driver_match"
      },
      "dependencies": [
        "K1414"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen vendor device class",
      "counterexample": "Desteksiz class",
      "guestAcceptance": "Açık unsupported tanısı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_driver_match_positive",
        "negativeName": "os_device_registry_driver_match_negative",
        "expectedMarker": "TURKOS/OS/K1415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Açık unsupported tanısı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Desteksiz class” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1415"
    },
    {
      "id": "K1416",
      "number": 1416,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.detach",
      "stage": "contract",
      "title": "Aygıt güvenli detach · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset drain IRQ sökümü free önceler.",
      "action": "“Aygıt güvenli detach” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Reset drain IRQ sökümü free önceler. “Boş ve dolu kuyruk detach” kabulü ile “Canlı descriptor erken free” reddini aynı sözleşmeye bağla.",
      "invariant": "Reset drain IRQ sökümü free önceler",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_detach"
      },
      "dependencies": [
        "K1415"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Boş ve dolu kuyruk detach",
      "counterexample": "Canlı descriptor erken free",
      "guestAcceptance": "Son sahibi kalmayınca kaynaklar döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_detach_positive",
        "negativeName": "os_device_registry_detach_negative",
        "expectedMarker": "TURKOS/OS/K1420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Reset drain IRQ sökümü free önceler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Canlı descriptor erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1416"
    },
    {
      "id": "K1417",
      "number": 1417,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.detach",
      "stage": "implementation",
      "title": "Aygıt güvenli detach · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset drain IRQ sökümü free önceler.",
      "action": "kernel/src/runtime/device_registry.rs hedefinde os_device_registry_detach yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Reset drain IRQ sökümü free önceler",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_detach"
      },
      "dependencies": [
        "K1416"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Boş ve dolu kuyruk detach",
      "counterexample": "Canlı descriptor erken free",
      "guestAcceptance": "Son sahibi kalmayınca kaynaklar döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_detach_positive",
        "negativeName": "os_device_registry_detach_negative",
        "expectedMarker": "TURKOS/OS/K1420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş ve dolu kuyruk detach ile Canlı descriptor erken free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Canlı descriptor erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1417"
    },
    {
      "id": "K1418",
      "number": 1418,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.detach",
      "stage": "positive",
      "title": "Aygıt güvenli detach · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset drain IRQ sökümü free önceler.",
      "action": "os_device_registry_detach_positive testini oluştur: “Boş ve dolu kuyruk detach”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Reset drain IRQ sökümü free önceler",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_detach"
      },
      "dependencies": [
        "K1417"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Boş ve dolu kuyruk detach",
      "counterexample": "Canlı descriptor erken free",
      "guestAcceptance": "Son sahibi kalmayınca kaynaklar döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_detach_positive",
        "negativeName": "os_device_registry_detach_negative",
        "expectedMarker": "TURKOS/OS/K1420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş ve dolu kuyruk detach girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Canlı descriptor erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1418"
    },
    {
      "id": "K1419",
      "number": 1419,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.detach",
      "stage": "negative",
      "title": "Aygıt güvenli detach · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset drain IRQ sökümü free önceler.",
      "action": "os_device_registry_detach_negative testini oluştur: “Canlı descriptor erken free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Reset drain IRQ sökümü free önceler",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_detach"
      },
      "dependencies": [
        "K1418"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Boş ve dolu kuyruk detach",
      "counterexample": "Canlı descriptor erken free",
      "guestAcceptance": "Son sahibi kalmayınca kaynaklar döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_detach_positive",
        "negativeName": "os_device_registry_detach_negative",
        "expectedMarker": "TURKOS/OS/K1420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Canlı descriptor erken free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Canlı descriptor erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1419"
    },
    {
      "id": "K1420",
      "number": 1420,
      "phase": 9,
      "module": "device_registry",
      "feature": "device_registry.detach",
      "stage": "integration",
      "title": "Aygıt güvenli detach · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset drain IRQ sökümü free önceler.",
      "action": "Tek ürün Image'ında “Son sahibi kalmayınca kaynaklar döner” kabulünü koştur. scripts/os-acceptance/device_registry.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Reset drain IRQ sökümü free önceler",
      "source": {
        "target": "kernel/src/runtime/device_registry.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_device_registry_detach"
      },
      "dependencies": [
        "K1419"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Boş ve dolu kuyruk detach",
      "counterexample": "Canlı descriptor erken free",
      "guestAcceptance": "Son sahibi kalmayınca kaynaklar döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/device_registry.rs",
        "harness": "scripts/os-acceptance/device_registry.mjs",
        "positiveName": "os_device_registry_detach_positive",
        "negativeName": "os_device_registry_detach_negative",
        "expectedMarker": "TURKOS/OS/K1420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son sahibi kalmayınca kaynaklar döner; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Canlı descriptor erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1420"
    },
    {
      "id": "K1421",
      "number": 1421,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.ecam",
      "stage": "contract",
      "title": "ECAM adres aralığı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bus device function hesabı taşmaz.",
      "action": "“ECAM adres aralığı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bus device function hesabı taşmaz. “Bus0 slot1 function0” kabulü ile “ECAM dışı bus255” reddini aynı sözleşmeye bağla.",
      "invariant": "Bus device function hesabı taşmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_ecam"
      },
      "dependencies": [
        "K1420"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bus0 slot1 function0",
      "counterexample": "ECAM dışı bus255",
      "guestAcceptance": "Config erişimi kaynak aralığında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_ecam_positive",
        "negativeName": "os_pci_discovery_ecam_negative",
        "expectedMarker": "TURKOS/OS/K1425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bus device function hesabı taşmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“ECAM dışı bus255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1421"
    },
    {
      "id": "K1422",
      "number": 1422,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.ecam",
      "stage": "implementation",
      "title": "ECAM adres aralığı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bus device function hesabı taşmaz.",
      "action": "kernel/src/arch/aarch64/pci_discovery.rs hedefinde os_pci_discovery_ecam yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bus device function hesabı taşmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_ecam"
      },
      "dependencies": [
        "K1421"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bus0 slot1 function0",
      "counterexample": "ECAM dışı bus255",
      "guestAcceptance": "Config erişimi kaynak aralığında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_ecam_positive",
        "negativeName": "os_pci_discovery_ecam_negative",
        "expectedMarker": "TURKOS/OS/K1425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bus0 slot1 function0 ile ECAM dışı bus255 ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“ECAM dışı bus255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1422"
    },
    {
      "id": "K1423",
      "number": 1423,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.ecam",
      "stage": "positive",
      "title": "ECAM adres aralığı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bus device function hesabı taşmaz.",
      "action": "os_pci_discovery_ecam_positive testini oluştur: “Bus0 slot1 function0”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bus device function hesabı taşmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_ecam"
      },
      "dependencies": [
        "K1422"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bus0 slot1 function0",
      "counterexample": "ECAM dışı bus255",
      "guestAcceptance": "Config erişimi kaynak aralığında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_ecam_positive",
        "negativeName": "os_pci_discovery_ecam_negative",
        "expectedMarker": "TURKOS/OS/K1425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bus0 slot1 function0 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“ECAM dışı bus255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1423"
    },
    {
      "id": "K1424",
      "number": 1424,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.ecam",
      "stage": "negative",
      "title": "ECAM adres aralığı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bus device function hesabı taşmaz.",
      "action": "os_pci_discovery_ecam_negative testini oluştur: “ECAM dışı bus255”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bus device function hesabı taşmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_ecam"
      },
      "dependencies": [
        "K1423"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bus0 slot1 function0",
      "counterexample": "ECAM dışı bus255",
      "guestAcceptance": "Config erişimi kaynak aralığında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_ecam_positive",
        "negativeName": "os_pci_discovery_ecam_negative",
        "expectedMarker": "TURKOS/OS/K1425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ECAM dışı bus255 karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“ECAM dışı bus255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1424"
    },
    {
      "id": "K1425",
      "number": 1425,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.ecam",
      "stage": "integration",
      "title": "ECAM adres aralığı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bus device function hesabı taşmaz.",
      "action": "Tek ürün Image'ında “Config erişimi kaynak aralığında” kabulünü koştur. scripts/os-acceptance/pci_discovery.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bus device function hesabı taşmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_ecam"
      },
      "dependencies": [
        "K1424"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bus0 slot1 function0",
      "counterexample": "ECAM dışı bus255",
      "guestAcceptance": "Config erişimi kaynak aralığında",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_ecam_positive",
        "negativeName": "os_pci_discovery_ecam_negative",
        "expectedMarker": "TURKOS/OS/K1425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Config erişimi kaynak aralığında; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“ECAM dışı bus255” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1425"
    },
    {
      "id": "K1426",
      "number": 1426,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.headers",
      "stage": "contract",
      "title": "PCI header sınıfları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Header tipi function kapsamını belirler.",
      "action": "“PCI header sınıfları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Header tipi function kapsamını belirler. “Tek ve çok function aygıt” kabulü ile “Bozuk vendor 0xffff” reddini aynı sözleşmeye bağla.",
      "invariant": "Header tipi function kapsamını belirler",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_headers"
      },
      "dependencies": [
        "K1425"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tek ve çok function aygıt",
      "counterexample": "Bozuk vendor 0xffff",
      "guestAcceptance": "Olmayan aygıta driver bağlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_headers_positive",
        "negativeName": "os_pci_discovery_headers_negative",
        "expectedMarker": "TURKOS/OS/K1430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Header tipi function kapsamını belirler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk vendor 0xffff” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1426"
    },
    {
      "id": "K1427",
      "number": 1427,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.headers",
      "stage": "implementation",
      "title": "PCI header sınıfları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Header tipi function kapsamını belirler.",
      "action": "kernel/src/arch/aarch64/pci_discovery.rs hedefinde os_pci_discovery_headers yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Header tipi function kapsamını belirler",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_headers"
      },
      "dependencies": [
        "K1426"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tek ve çok function aygıt",
      "counterexample": "Bozuk vendor 0xffff",
      "guestAcceptance": "Olmayan aygıta driver bağlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_headers_positive",
        "negativeName": "os_pci_discovery_headers_negative",
        "expectedMarker": "TURKOS/OS/K1430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Tek ve çok function aygıt ile Bozuk vendor 0xffff ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk vendor 0xffff” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1427"
    },
    {
      "id": "K1428",
      "number": 1428,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.headers",
      "stage": "positive",
      "title": "PCI header sınıfları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Header tipi function kapsamını belirler.",
      "action": "os_pci_discovery_headers_positive testini oluştur: “Tek ve çok function aygıt”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Header tipi function kapsamını belirler",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_headers"
      },
      "dependencies": [
        "K1427"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tek ve çok function aygıt",
      "counterexample": "Bozuk vendor 0xffff",
      "guestAcceptance": "Olmayan aygıta driver bağlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_headers_positive",
        "negativeName": "os_pci_discovery_headers_negative",
        "expectedMarker": "TURKOS/OS/K1430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Tek ve çok function aygıt girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk vendor 0xffff” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1428"
    },
    {
      "id": "K1429",
      "number": 1429,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.headers",
      "stage": "negative",
      "title": "PCI header sınıfları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Header tipi function kapsamını belirler.",
      "action": "os_pci_discovery_headers_negative testini oluştur: “Bozuk vendor 0xffff”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Header tipi function kapsamını belirler",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_headers"
      },
      "dependencies": [
        "K1428"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tek ve çok function aygıt",
      "counterexample": "Bozuk vendor 0xffff",
      "guestAcceptance": "Olmayan aygıta driver bağlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_headers_positive",
        "negativeName": "os_pci_discovery_headers_negative",
        "expectedMarker": "TURKOS/OS/K1430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk vendor 0xffff karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk vendor 0xffff” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1429"
    },
    {
      "id": "K1430",
      "number": 1430,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.headers",
      "stage": "integration",
      "title": "PCI header sınıfları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Header tipi function kapsamını belirler.",
      "action": "Tek ürün Image'ında “Olmayan aygıta driver bağlanmaz” kabulünü koştur. scripts/os-acceptance/pci_discovery.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Header tipi function kapsamını belirler",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_headers"
      },
      "dependencies": [
        "K1429"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tek ve çok function aygıt",
      "counterexample": "Bozuk vendor 0xffff",
      "guestAcceptance": "Olmayan aygıta driver bağlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_headers_positive",
        "negativeName": "os_pci_discovery_headers_negative",
        "expectedMarker": "TURKOS/OS/K1430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Olmayan aygıta driver bağlanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk vendor 0xffff” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1430"
    },
    {
      "id": "K1431",
      "number": 1431,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.capabilities",
      "stage": "contract",
      "title": "PCI capability zinciri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Pointer döngüsü ve hizası sınırlandırılır.",
      "action": "“PCI capability zinciri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Pointer döngüsü ve hizası sınırlandırılır. “İki bağlı capability” kabulü ile “Öz döngülü next pointer” reddini aynı sözleşmeye bağla.",
      "invariant": "Pointer döngüsü ve hizası sınırlandırılır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_capabilities"
      },
      "dependencies": [
        "K1430"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki bağlı capability",
      "counterexample": "Öz döngülü next pointer",
      "guestAcceptance": "Keşif bounded ret ile biter",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_capabilities_positive",
        "negativeName": "os_pci_discovery_capabilities_negative",
        "expectedMarker": "TURKOS/OS/K1435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Pointer döngüsü ve hizası sınırlandırılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Öz döngülü next pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1431"
    },
    {
      "id": "K1432",
      "number": 1432,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.capabilities",
      "stage": "implementation",
      "title": "PCI capability zinciri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Pointer döngüsü ve hizası sınırlandırılır.",
      "action": "kernel/src/arch/aarch64/pci_discovery.rs hedefinde os_pci_discovery_capabilities yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Pointer döngüsü ve hizası sınırlandırılır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_capabilities"
      },
      "dependencies": [
        "K1431"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki bağlı capability",
      "counterexample": "Öz döngülü next pointer",
      "guestAcceptance": "Keşif bounded ret ile biter",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_capabilities_positive",
        "negativeName": "os_pci_discovery_capabilities_negative",
        "expectedMarker": "TURKOS/OS/K1435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki bağlı capability ile Öz döngülü next pointer ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Öz döngülü next pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1432"
    },
    {
      "id": "K1433",
      "number": 1433,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.capabilities",
      "stage": "positive",
      "title": "PCI capability zinciri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Pointer döngüsü ve hizası sınırlandırılır.",
      "action": "os_pci_discovery_capabilities_positive testini oluştur: “İki bağlı capability”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Pointer döngüsü ve hizası sınırlandırılır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_capabilities"
      },
      "dependencies": [
        "K1432"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki bağlı capability",
      "counterexample": "Öz döngülü next pointer",
      "guestAcceptance": "Keşif bounded ret ile biter",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_capabilities_positive",
        "negativeName": "os_pci_discovery_capabilities_negative",
        "expectedMarker": "TURKOS/OS/K1435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki bağlı capability girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Öz döngülü next pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1433"
    },
    {
      "id": "K1434",
      "number": 1434,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.capabilities",
      "stage": "negative",
      "title": "PCI capability zinciri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Pointer döngüsü ve hizası sınırlandırılır.",
      "action": "os_pci_discovery_capabilities_negative testini oluştur: “Öz döngülü next pointer”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Pointer döngüsü ve hizası sınırlandırılır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_capabilities"
      },
      "dependencies": [
        "K1433"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki bağlı capability",
      "counterexample": "Öz döngülü next pointer",
      "guestAcceptance": "Keşif bounded ret ile biter",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_capabilities_positive",
        "negativeName": "os_pci_discovery_capabilities_negative",
        "expectedMarker": "TURKOS/OS/K1435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Öz döngülü next pointer karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Öz döngülü next pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1434"
    },
    {
      "id": "K1435",
      "number": 1435,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.capabilities",
      "stage": "integration",
      "title": "PCI capability zinciri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Pointer döngüsü ve hizası sınırlandırılır.",
      "action": "Tek ürün Image'ında “Keşif bounded ret ile biter” kabulünü koştur. scripts/os-acceptance/pci_discovery.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Pointer döngüsü ve hizası sınırlandırılır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_capabilities"
      },
      "dependencies": [
        "K1434"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki bağlı capability",
      "counterexample": "Öz döngülü next pointer",
      "guestAcceptance": "Keşif bounded ret ile biter",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_capabilities_positive",
        "negativeName": "os_pci_discovery_capabilities_negative",
        "expectedMarker": "TURKOS/OS/K1435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Keşif bounded ret ile biter; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Öz döngülü next pointer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1435"
    },
    {
      "id": "K1436",
      "number": 1436,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.bridges",
      "stage": "contract",
      "title": "PCI bus ve bridge ağacı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bridge penceresi izinli busları kapsar.",
      "action": "“PCI bus ve bridge ağacı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bridge penceresi izinli busları kapsar. “Bir nested bridge” kabulü ile “Secondary bus parentla çakışır” reddini aynı sözleşmeye bağla.",
      "invariant": "Bridge penceresi izinli busları kapsar",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_bridges"
      },
      "dependencies": [
        "K1435"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir nested bridge",
      "counterexample": "Secondary bus parentla çakışır",
      "guestAcceptance": "Her aygıt bir kez keşfedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_bridges_positive",
        "negativeName": "os_pci_discovery_bridges_negative",
        "expectedMarker": "TURKOS/OS/K1440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bridge penceresi izinli busları kapsar kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Secondary bus parentla çakışır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1436"
    },
    {
      "id": "K1437",
      "number": 1437,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.bridges",
      "stage": "implementation",
      "title": "PCI bus ve bridge ağacı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bridge penceresi izinli busları kapsar.",
      "action": "kernel/src/arch/aarch64/pci_discovery.rs hedefinde os_pci_discovery_bridges yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bridge penceresi izinli busları kapsar",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_bridges"
      },
      "dependencies": [
        "K1436"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir nested bridge",
      "counterexample": "Secondary bus parentla çakışır",
      "guestAcceptance": "Her aygıt bir kez keşfedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_bridges_positive",
        "negativeName": "os_pci_discovery_bridges_negative",
        "expectedMarker": "TURKOS/OS/K1440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir nested bridge ile Secondary bus parentla çakışır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Secondary bus parentla çakışır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1437"
    },
    {
      "id": "K1438",
      "number": 1438,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.bridges",
      "stage": "positive",
      "title": "PCI bus ve bridge ağacı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bridge penceresi izinli busları kapsar.",
      "action": "os_pci_discovery_bridges_positive testini oluştur: “Bir nested bridge”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bridge penceresi izinli busları kapsar",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_bridges"
      },
      "dependencies": [
        "K1437"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir nested bridge",
      "counterexample": "Secondary bus parentla çakışır",
      "guestAcceptance": "Her aygıt bir kez keşfedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_bridges_positive",
        "negativeName": "os_pci_discovery_bridges_negative",
        "expectedMarker": "TURKOS/OS/K1440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir nested bridge girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Secondary bus parentla çakışır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1438"
    },
    {
      "id": "K1439",
      "number": 1439,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.bridges",
      "stage": "negative",
      "title": "PCI bus ve bridge ağacı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bridge penceresi izinli busları kapsar.",
      "action": "os_pci_discovery_bridges_negative testini oluştur: “Secondary bus parentla çakışır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bridge penceresi izinli busları kapsar",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_bridges"
      },
      "dependencies": [
        "K1438"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir nested bridge",
      "counterexample": "Secondary bus parentla çakışır",
      "guestAcceptance": "Her aygıt bir kez keşfedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_bridges_positive",
        "negativeName": "os_pci_discovery_bridges_negative",
        "expectedMarker": "TURKOS/OS/K1440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Secondary bus parentla çakışır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Secondary bus parentla çakışır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1439"
    },
    {
      "id": "K1440",
      "number": 1440,
      "phase": 9,
      "module": "pci_discovery",
      "feature": "pci_discovery.bridges",
      "stage": "integration",
      "title": "PCI bus ve bridge ağacı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Bridge penceresi izinli busları kapsar.",
      "action": "Tek ürün Image'ında “Her aygıt bir kez keşfedilir” kabulünü koştur. scripts/os-acceptance/pci_discovery.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bridge penceresi izinli busları kapsar",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_discovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_pci_discovery_bridges"
      },
      "dependencies": [
        "K1439"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bir nested bridge",
      "counterexample": "Secondary bus parentla çakışır",
      "guestAcceptance": "Her aygıt bir kez keşfedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_discovery.rs",
        "harness": "scripts/os-acceptance/pci_discovery.mjs",
        "positiveName": "os_pci_discovery_bridges_positive",
        "negativeName": "os_pci_discovery_bridges_negative",
        "expectedMarker": "TURKOS/OS/K1440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her aygıt bir kez keşfedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Secondary bus parentla çakışır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1440"
    },
    {
      "id": "K1441",
      "number": 1441,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.bar_size",
      "stage": "contract",
      "title": "BAR boyut ve tür çözümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: I/O ve memory BAR karışmaz.",
      "action": "“BAR boyut ve tür çözümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: I/O ve memory BAR karışmaz. “32 ve 64 bit memory BAR” kabulü ile “Hizasız bozuk boy maskesi” reddini aynı sözleşmeye bağla.",
      "invariant": "I/O ve memory BAR karışmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_bar_size"
      },
      "dependencies": [
        "K1440"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "32 ve 64 bit memory BAR",
      "counterexample": "Hizasız bozuk boy maskesi",
      "guestAcceptance": "BAR haritası taşmasız kurulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_bar_size_positive",
        "negativeName": "os_pci_resources_bar_size_negative",
        "expectedMarker": "TURKOS/OS/K1445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu I/O ve memory BAR karışmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Hizasız bozuk boy maskesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1441"
    },
    {
      "id": "K1442",
      "number": 1442,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.bar_size",
      "stage": "implementation",
      "title": "BAR boyut ve tür çözümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: I/O ve memory BAR karışmaz.",
      "action": "kernel/src/arch/aarch64/pci_resources.rs hedefinde os_pci_resources_bar_size yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "I/O ve memory BAR karışmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_bar_size"
      },
      "dependencies": [
        "K1441"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "32 ve 64 bit memory BAR",
      "counterexample": "Hizasız bozuk boy maskesi",
      "guestAcceptance": "BAR haritası taşmasız kurulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_bar_size_positive",
        "negativeName": "os_pci_resources_bar_size_negative",
        "expectedMarker": "TURKOS/OS/K1445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 32 ve 64 bit memory BAR ile Hizasız bozuk boy maskesi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Hizasız bozuk boy maskesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1442"
    },
    {
      "id": "K1443",
      "number": 1443,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.bar_size",
      "stage": "positive",
      "title": "BAR boyut ve tür çözümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: I/O ve memory BAR karışmaz.",
      "action": "os_pci_resources_bar_size_positive testini oluştur: “32 ve 64 bit memory BAR”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "I/O ve memory BAR karışmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_bar_size"
      },
      "dependencies": [
        "K1442"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "32 ve 64 bit memory BAR",
      "counterexample": "Hizasız bozuk boy maskesi",
      "guestAcceptance": "BAR haritası taşmasız kurulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_bar_size_positive",
        "negativeName": "os_pci_resources_bar_size_negative",
        "expectedMarker": "TURKOS/OS/K1445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 32 ve 64 bit memory BAR girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Hizasız bozuk boy maskesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1443"
    },
    {
      "id": "K1444",
      "number": 1444,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.bar_size",
      "stage": "negative",
      "title": "BAR boyut ve tür çözümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: I/O ve memory BAR karışmaz.",
      "action": "os_pci_resources_bar_size_negative testini oluştur: “Hizasız bozuk boy maskesi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "I/O ve memory BAR karışmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_bar_size"
      },
      "dependencies": [
        "K1443"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "32 ve 64 bit memory BAR",
      "counterexample": "Hizasız bozuk boy maskesi",
      "guestAcceptance": "BAR haritası taşmasız kurulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_bar_size_positive",
        "negativeName": "os_pci_resources_bar_size_negative",
        "expectedMarker": "TURKOS/OS/K1445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hizasız bozuk boy maskesi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Hizasız bozuk boy maskesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1444"
    },
    {
      "id": "K1445",
      "number": 1445,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.bar_size",
      "stage": "integration",
      "title": "BAR boyut ve tür çözümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: I/O ve memory BAR karışmaz.",
      "action": "Tek ürün Image'ında “BAR haritası taşmasız kurulur” kabulünü koştur. scripts/os-acceptance/pci_resources.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "I/O ve memory BAR karışmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_bar_size"
      },
      "dependencies": [
        "K1444"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "32 ve 64 bit memory BAR",
      "counterexample": "Hizasız bozuk boy maskesi",
      "guestAcceptance": "BAR haritası taşmasız kurulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_bar_size_positive",
        "negativeName": "os_pci_resources_bar_size_negative",
        "expectedMarker": "TURKOS/OS/K1445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "BAR haritası taşmasız kurulur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Hizasız bozuk boy maskesi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1445"
    },
    {
      "id": "K1446",
      "number": 1446,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.mapping",
      "stage": "contract",
      "title": "BAR device memory map · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: BAR user RAM gibi cachelenmez.",
      "action": "“BAR device memory map” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: BAR user RAM gibi cachelenmez. “Device nGnRE MMIO” kabulü ile “Normal RAM üstüne BAR” reddini aynı sözleşmeye bağla.",
      "invariant": "BAR user RAM gibi cachelenmez",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_mapping"
      },
      "dependencies": [
        "K1445"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Device nGnRE MMIO",
      "counterexample": "Normal RAM üstüne BAR",
      "guestAcceptance": "Çakışma mappingden önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_mapping_positive",
        "negativeName": "os_pci_resources_mapping_negative",
        "expectedMarker": "TURKOS/OS/K1450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu BAR user RAM gibi cachelenmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Normal RAM üstüne BAR” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1446"
    },
    {
      "id": "K1447",
      "number": 1447,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.mapping",
      "stage": "implementation",
      "title": "BAR device memory map · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: BAR user RAM gibi cachelenmez.",
      "action": "kernel/src/arch/aarch64/pci_resources.rs hedefinde os_pci_resources_mapping yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "BAR user RAM gibi cachelenmez",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_mapping"
      },
      "dependencies": [
        "K1446"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Device nGnRE MMIO",
      "counterexample": "Normal RAM üstüne BAR",
      "guestAcceptance": "Çakışma mappingden önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_mapping_positive",
        "negativeName": "os_pci_resources_mapping_negative",
        "expectedMarker": "TURKOS/OS/K1450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Device nGnRE MMIO ile Normal RAM üstüne BAR ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Normal RAM üstüne BAR” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1447"
    },
    {
      "id": "K1448",
      "number": 1448,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.mapping",
      "stage": "positive",
      "title": "BAR device memory map · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: BAR user RAM gibi cachelenmez.",
      "action": "os_pci_resources_mapping_positive testini oluştur: “Device nGnRE MMIO”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "BAR user RAM gibi cachelenmez",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_mapping"
      },
      "dependencies": [
        "K1447"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Device nGnRE MMIO",
      "counterexample": "Normal RAM üstüne BAR",
      "guestAcceptance": "Çakışma mappingden önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_mapping_positive",
        "negativeName": "os_pci_resources_mapping_negative",
        "expectedMarker": "TURKOS/OS/K1450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Device nGnRE MMIO girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Normal RAM üstüne BAR” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1448"
    },
    {
      "id": "K1449",
      "number": 1449,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.mapping",
      "stage": "negative",
      "title": "BAR device memory map · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: BAR user RAM gibi cachelenmez.",
      "action": "os_pci_resources_mapping_negative testini oluştur: “Normal RAM üstüne BAR”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "BAR user RAM gibi cachelenmez",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_mapping"
      },
      "dependencies": [
        "K1448"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Device nGnRE MMIO",
      "counterexample": "Normal RAM üstüne BAR",
      "guestAcceptance": "Çakışma mappingden önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_mapping_positive",
        "negativeName": "os_pci_resources_mapping_negative",
        "expectedMarker": "TURKOS/OS/K1450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Normal RAM üstüne BAR karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Normal RAM üstüne BAR” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1449"
    },
    {
      "id": "K1450",
      "number": 1450,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.mapping",
      "stage": "integration",
      "title": "BAR device memory map · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: BAR user RAM gibi cachelenmez.",
      "action": "Tek ürün Image'ında “Çakışma mappingden önce reddedilir” kabulünü koştur. scripts/os-acceptance/pci_resources.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "BAR user RAM gibi cachelenmez",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_mapping"
      },
      "dependencies": [
        "K1449"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Device nGnRE MMIO",
      "counterexample": "Normal RAM üstüne BAR",
      "guestAcceptance": "Çakışma mappingden önce reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_mapping_positive",
        "negativeName": "os_pci_resources_mapping_negative",
        "expectedMarker": "TURKOS/OS/K1450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çakışma mappingden önce reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Normal RAM üstüne BAR” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1450"
    },
    {
      "id": "K1451",
      "number": 1451,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.intx",
      "stage": "contract",
      "title": "PCI INTx yönlendirme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: DTB interrupt map hedefe bağlanır.",
      "action": "“PCI INTx yönlendirme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: DTB interrupt map hedefe bağlanır. “Bilinen slot interrupt tuple” kabulü ile “Eksik interrupt map” reddini aynı sözleşmeye bağla.",
      "invariant": "DTB interrupt map hedefe bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_intx"
      },
      "dependencies": [
        "K1450"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen slot interrupt tuple",
      "counterexample": "Eksik interrupt map",
      "guestAcceptance": "Polling fallback açık ölçümle etiketlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_intx_positive",
        "negativeName": "os_pci_resources_intx_negative",
        "expectedMarker": "TURKOS/OS/K1455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu DTB interrupt map hedefe bağlanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eksik interrupt map” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1451"
    },
    {
      "id": "K1452",
      "number": 1452,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.intx",
      "stage": "implementation",
      "title": "PCI INTx yönlendirme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: DTB interrupt map hedefe bağlanır.",
      "action": "kernel/src/arch/aarch64/pci_resources.rs hedefinde os_pci_resources_intx yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "DTB interrupt map hedefe bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_intx"
      },
      "dependencies": [
        "K1451"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen slot interrupt tuple",
      "counterexample": "Eksik interrupt map",
      "guestAcceptance": "Polling fallback açık ölçümle etiketlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_intx_positive",
        "negativeName": "os_pci_resources_intx_negative",
        "expectedMarker": "TURKOS/OS/K1455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen slot interrupt tuple ile Eksik interrupt map ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eksik interrupt map” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1452"
    },
    {
      "id": "K1453",
      "number": 1453,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.intx",
      "stage": "positive",
      "title": "PCI INTx yönlendirme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: DTB interrupt map hedefe bağlanır.",
      "action": "os_pci_resources_intx_positive testini oluştur: “Bilinen slot interrupt tuple”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "DTB interrupt map hedefe bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_intx"
      },
      "dependencies": [
        "K1452"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen slot interrupt tuple",
      "counterexample": "Eksik interrupt map",
      "guestAcceptance": "Polling fallback açık ölçümle etiketlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_intx_positive",
        "negativeName": "os_pci_resources_intx_negative",
        "expectedMarker": "TURKOS/OS/K1455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen slot interrupt tuple girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eksik interrupt map” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1453"
    },
    {
      "id": "K1454",
      "number": 1454,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.intx",
      "stage": "negative",
      "title": "PCI INTx yönlendirme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: DTB interrupt map hedefe bağlanır.",
      "action": "os_pci_resources_intx_negative testini oluştur: “Eksik interrupt map”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "DTB interrupt map hedefe bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_intx"
      },
      "dependencies": [
        "K1453"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen slot interrupt tuple",
      "counterexample": "Eksik interrupt map",
      "guestAcceptance": "Polling fallback açık ölçümle etiketlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_intx_positive",
        "negativeName": "os_pci_resources_intx_negative",
        "expectedMarker": "TURKOS/OS/K1455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik interrupt map karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eksik interrupt map” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1454"
    },
    {
      "id": "K1455",
      "number": 1455,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.intx",
      "stage": "integration",
      "title": "PCI INTx yönlendirme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: DTB interrupt map hedefe bağlanır.",
      "action": "Tek ürün Image'ında “Polling fallback açık ölçümle etiketlenir” kabulünü koştur. scripts/os-acceptance/pci_resources.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "DTB interrupt map hedefe bağlanır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_intx"
      },
      "dependencies": [
        "K1454"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Bilinen slot interrupt tuple",
      "counterexample": "Eksik interrupt map",
      "guestAcceptance": "Polling fallback açık ölçümle etiketlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_intx_positive",
        "negativeName": "os_pci_resources_intx_negative",
        "expectedMarker": "TURKOS/OS/K1455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Polling fallback açık ölçümle etiketlenir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eksik interrupt map” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1455"
    },
    {
      "id": "K1456",
      "number": 1456,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.msix",
      "stage": "contract",
      "title": "MSIX kontrollü prototip · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Tablo aralığı ve vektör sahipliği sınırlıdır.",
      "action": "“MSIX kontrollü prototip” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Tablo aralığı ve vektör sahipliği sınırlıdır. “İki queue iki vektör” kabulü ile “Tablo BAR boyunu aşar” reddini aynı sözleşmeye bağla.",
      "invariant": "Tablo aralığı ve vektör sahipliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_msix"
      },
      "dependencies": [
        "K1455"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki queue iki vektör",
      "counterexample": "Tablo BAR boyunu aşar",
      "guestAcceptance": "Destek varsa gerçek IRQ yoksa unsupported",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_msix_positive",
        "negativeName": "os_pci_resources_msix_negative",
        "expectedMarker": "TURKOS/OS/K1460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Tablo aralığı ve vektör sahipliği sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Tablo BAR boyunu aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1456"
    },
    {
      "id": "K1457",
      "number": 1457,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.msix",
      "stage": "implementation",
      "title": "MSIX kontrollü prototip · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Tablo aralığı ve vektör sahipliği sınırlıdır.",
      "action": "kernel/src/arch/aarch64/pci_resources.rs hedefinde os_pci_resources_msix yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Tablo aralığı ve vektör sahipliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_msix"
      },
      "dependencies": [
        "K1456"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki queue iki vektör",
      "counterexample": "Tablo BAR boyunu aşar",
      "guestAcceptance": "Destek varsa gerçek IRQ yoksa unsupported",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_msix_positive",
        "negativeName": "os_pci_resources_msix_negative",
        "expectedMarker": "TURKOS/OS/K1460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki queue iki vektör ile Tablo BAR boyunu aşar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Tablo BAR boyunu aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1457"
    },
    {
      "id": "K1458",
      "number": 1458,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.msix",
      "stage": "positive",
      "title": "MSIX kontrollü prototip · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Tablo aralığı ve vektör sahipliği sınırlıdır.",
      "action": "os_pci_resources_msix_positive testini oluştur: “İki queue iki vektör”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Tablo aralığı ve vektör sahipliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_msix"
      },
      "dependencies": [
        "K1457"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki queue iki vektör",
      "counterexample": "Tablo BAR boyunu aşar",
      "guestAcceptance": "Destek varsa gerçek IRQ yoksa unsupported",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_msix_positive",
        "negativeName": "os_pci_resources_msix_negative",
        "expectedMarker": "TURKOS/OS/K1460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki queue iki vektör girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Tablo BAR boyunu aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1458"
    },
    {
      "id": "K1459",
      "number": 1459,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.msix",
      "stage": "negative",
      "title": "MSIX kontrollü prototip · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Tablo aralığı ve vektör sahipliği sınırlıdır.",
      "action": "os_pci_resources_msix_negative testini oluştur: “Tablo BAR boyunu aşar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Tablo aralığı ve vektör sahipliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_msix"
      },
      "dependencies": [
        "K1458"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki queue iki vektör",
      "counterexample": "Tablo BAR boyunu aşar",
      "guestAcceptance": "Destek varsa gerçek IRQ yoksa unsupported",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_msix_positive",
        "negativeName": "os_pci_resources_msix_negative",
        "expectedMarker": "TURKOS/OS/K1460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tablo BAR boyunu aşar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Tablo BAR boyunu aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1459"
    },
    {
      "id": "K1460",
      "number": 1460,
      "phase": 9,
      "module": "pci_resources",
      "feature": "pci_resources.msix",
      "stage": "integration",
      "title": "MSIX kontrollü prototip · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Tablo aralığı ve vektör sahipliği sınırlıdır.",
      "action": "Tek ürün Image'ında “Destek varsa gerçek IRQ yoksa unsupported” kabulünü koştur. scripts/os-acceptance/pci_resources.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Tablo aralığı ve vektör sahipliği sınırlıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/pci_resources.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_pci_resources_msix"
      },
      "dependencies": [
        "K1459"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki queue iki vektör",
      "counterexample": "Tablo BAR boyunu aşar",
      "guestAcceptance": "Destek varsa gerçek IRQ yoksa unsupported",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/pci_resources.rs",
        "harness": "scripts/os-acceptance/pci_resources.mjs",
        "positiveName": "os_pci_resources_msix_positive",
        "negativeName": "os_pci_resources_msix_negative",
        "expectedMarker": "TURKOS/OS/K1460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Destek varsa gerçek IRQ yoksa unsupported; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Tablo BAR boyunu aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1460"
    },
    {
      "id": "K1461",
      "number": 1461,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.mmio",
      "stage": "contract",
      "title": "Virtio MMIO v2 yolu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Transport sürümü keşiften doğrulanır.",
      "action": "“Virtio MMIO v2 yolu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Transport sürümü keşiften doğrulanır. “Modern MMIO aygıt” kabulü ile “Legacy v1 modern diye alınır” reddini aynı sözleşmeye bağla.",
      "invariant": "Transport sürümü keşiften doğrulanır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_mmio"
      },
      "dependencies": [
        "K1460"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Modern MMIO aygıt",
      "counterexample": "Legacy v1 modern diye alınır",
      "guestAcceptance": "Version1 feature pazarlığı kayıtlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_mmio_positive",
        "negativeName": "os_virtio_transport_mmio_negative",
        "expectedMarker": "TURKOS/OS/K1465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Transport sürümü keşiften doğrulanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Legacy v1 modern diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1461"
    },
    {
      "id": "K1462",
      "number": 1462,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.mmio",
      "stage": "implementation",
      "title": "Virtio MMIO v2 yolu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Transport sürümü keşiften doğrulanır.",
      "action": "kernel/src/runtime/virtio_transport.rs hedefinde os_virtio_transport_mmio yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Transport sürümü keşiften doğrulanır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_mmio"
      },
      "dependencies": [
        "K1461"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Modern MMIO aygıt",
      "counterexample": "Legacy v1 modern diye alınır",
      "guestAcceptance": "Version1 feature pazarlığı kayıtlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_mmio_positive",
        "negativeName": "os_virtio_transport_mmio_negative",
        "expectedMarker": "TURKOS/OS/K1465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Modern MMIO aygıt ile Legacy v1 modern diye alınır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Legacy v1 modern diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1462"
    },
    {
      "id": "K1463",
      "number": 1463,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.mmio",
      "stage": "positive",
      "title": "Virtio MMIO v2 yolu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Transport sürümü keşiften doğrulanır.",
      "action": "os_virtio_transport_mmio_positive testini oluştur: “Modern MMIO aygıt”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Transport sürümü keşiften doğrulanır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_mmio"
      },
      "dependencies": [
        "K1462"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Modern MMIO aygıt",
      "counterexample": "Legacy v1 modern diye alınır",
      "guestAcceptance": "Version1 feature pazarlığı kayıtlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_mmio_positive",
        "negativeName": "os_virtio_transport_mmio_negative",
        "expectedMarker": "TURKOS/OS/K1465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Modern MMIO aygıt girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Legacy v1 modern diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1463"
    },
    {
      "id": "K1464",
      "number": 1464,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.mmio",
      "stage": "negative",
      "title": "Virtio MMIO v2 yolu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Transport sürümü keşiften doğrulanır.",
      "action": "os_virtio_transport_mmio_negative testini oluştur: “Legacy v1 modern diye alınır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Transport sürümü keşiften doğrulanır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_mmio"
      },
      "dependencies": [
        "K1463"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Modern MMIO aygıt",
      "counterexample": "Legacy v1 modern diye alınır",
      "guestAcceptance": "Version1 feature pazarlığı kayıtlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_mmio_positive",
        "negativeName": "os_virtio_transport_mmio_negative",
        "expectedMarker": "TURKOS/OS/K1465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Legacy v1 modern diye alınır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Legacy v1 modern diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1464"
    },
    {
      "id": "K1465",
      "number": 1465,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.mmio",
      "stage": "integration",
      "title": "Virtio MMIO v2 yolu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Transport sürümü keşiften doğrulanır.",
      "action": "Tek ürün Image'ında “Version1 feature pazarlığı kayıtlı” kabulünü koştur. scripts/os-acceptance/virtio_transport.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Transport sürümü keşiften doğrulanır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_mmio"
      },
      "dependencies": [
        "K1464"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Modern MMIO aygıt",
      "counterexample": "Legacy v1 modern diye alınır",
      "guestAcceptance": "Version1 feature pazarlığı kayıtlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_mmio_positive",
        "negativeName": "os_virtio_transport_mmio_negative",
        "expectedMarker": "TURKOS/OS/K1465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Version1 feature pazarlığı kayıtlı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Legacy v1 modern diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1465"
    },
    {
      "id": "K1466",
      "number": 1466,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.pci",
      "stage": "contract",
      "title": "Virtio PCI common config · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Capability offset BAR aralığında kalır.",
      "action": "“Virtio PCI common config” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Capability offset BAR aralığında kalır. “Common notify ISR device cfg” kabulü ile “Notify offset overflow” reddini aynı sözleşmeye bağla.",
      "invariant": "Capability offset BAR aralığında kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_pci"
      },
      "dependencies": [
        "K1465"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Common notify ISR device cfg",
      "counterexample": "Notify offset overflow",
      "guestAcceptance": "Bozuk PCI config attach yapamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_pci_positive",
        "negativeName": "os_virtio_transport_pci_negative",
        "expectedMarker": "TURKOS/OS/K1470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Capability offset BAR aralığında kalır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Notify offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1466"
    },
    {
      "id": "K1467",
      "number": 1467,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.pci",
      "stage": "implementation",
      "title": "Virtio PCI common config · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Capability offset BAR aralığında kalır.",
      "action": "kernel/src/runtime/virtio_transport.rs hedefinde os_virtio_transport_pci yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Capability offset BAR aralığında kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_pci"
      },
      "dependencies": [
        "K1466"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Common notify ISR device cfg",
      "counterexample": "Notify offset overflow",
      "guestAcceptance": "Bozuk PCI config attach yapamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_pci_positive",
        "negativeName": "os_virtio_transport_pci_negative",
        "expectedMarker": "TURKOS/OS/K1470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Common notify ISR device cfg ile Notify offset overflow ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Notify offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1467"
    },
    {
      "id": "K1468",
      "number": 1468,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.pci",
      "stage": "positive",
      "title": "Virtio PCI common config · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Capability offset BAR aralığında kalır.",
      "action": "os_virtio_transport_pci_positive testini oluştur: “Common notify ISR device cfg”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Capability offset BAR aralığında kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_pci"
      },
      "dependencies": [
        "K1467"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Common notify ISR device cfg",
      "counterexample": "Notify offset overflow",
      "guestAcceptance": "Bozuk PCI config attach yapamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_pci_positive",
        "negativeName": "os_virtio_transport_pci_negative",
        "expectedMarker": "TURKOS/OS/K1470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Common notify ISR device cfg girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Notify offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1468"
    },
    {
      "id": "K1469",
      "number": 1469,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.pci",
      "stage": "negative",
      "title": "Virtio PCI common config · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Capability offset BAR aralığında kalır.",
      "action": "os_virtio_transport_pci_negative testini oluştur: “Notify offset overflow”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Capability offset BAR aralığında kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_pci"
      },
      "dependencies": [
        "K1468"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Common notify ISR device cfg",
      "counterexample": "Notify offset overflow",
      "guestAcceptance": "Bozuk PCI config attach yapamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_pci_positive",
        "negativeName": "os_virtio_transport_pci_negative",
        "expectedMarker": "TURKOS/OS/K1470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Notify offset overflow karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Notify offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1469"
    },
    {
      "id": "K1470",
      "number": 1470,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.pci",
      "stage": "integration",
      "title": "Virtio PCI common config · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Capability offset BAR aralığında kalır.",
      "action": "Tek ürün Image'ında “Bozuk PCI config attach yapamaz” kabulünü koştur. scripts/os-acceptance/virtio_transport.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Capability offset BAR aralığında kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_pci"
      },
      "dependencies": [
        "K1469"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Common notify ISR device cfg",
      "counterexample": "Notify offset overflow",
      "guestAcceptance": "Bozuk PCI config attach yapamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_pci_positive",
        "negativeName": "os_virtio_transport_pci_negative",
        "expectedMarker": "TURKOS/OS/K1470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk PCI config attach yapamaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Notify offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1470"
    },
    {
      "id": "K1471",
      "number": 1471,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.features",
      "stage": "contract",
      "title": "Feature negotiation sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Yalnız desteklenen altküme kabul edilir.",
      "action": "“Feature negotiation sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yalnız desteklenen altküme kabul edilir. “RO VERSION1 teklifleri” kabulü ile “FEATURES_OK geri okuması false” reddini aynı sözleşmeye bağla.",
      "invariant": "Yalnız desteklenen altküme kabul edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_features"
      },
      "dependencies": [
        "K1470"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "RO VERSION1 teklifleri",
      "counterexample": "FEATURES_OK geri okuması false",
      "guestAcceptance": "DRIVER_OK yoluna geçilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_features_positive",
        "negativeName": "os_virtio_transport_features_negative",
        "expectedMarker": "TURKOS/OS/K1475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yalnız desteklenen altküme kabul edilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“FEATURES_OK geri okuması false” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1471"
    },
    {
      "id": "K1472",
      "number": 1472,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.features",
      "stage": "implementation",
      "title": "Feature negotiation sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Yalnız desteklenen altküme kabul edilir.",
      "action": "kernel/src/runtime/virtio_transport.rs hedefinde os_virtio_transport_features yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yalnız desteklenen altküme kabul edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_features"
      },
      "dependencies": [
        "K1471"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "RO VERSION1 teklifleri",
      "counterexample": "FEATURES_OK geri okuması false",
      "guestAcceptance": "DRIVER_OK yoluna geçilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_features_positive",
        "negativeName": "os_virtio_transport_features_negative",
        "expectedMarker": "TURKOS/OS/K1475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. RO VERSION1 teklifleri ile FEATURES_OK geri okuması false ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“FEATURES_OK geri okuması false” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1472"
    },
    {
      "id": "K1473",
      "number": 1473,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.features",
      "stage": "positive",
      "title": "Feature negotiation sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Yalnız desteklenen altküme kabul edilir.",
      "action": "os_virtio_transport_features_positive testini oluştur: “RO VERSION1 teklifleri”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yalnız desteklenen altküme kabul edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_features"
      },
      "dependencies": [
        "K1472"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "RO VERSION1 teklifleri",
      "counterexample": "FEATURES_OK geri okuması false",
      "guestAcceptance": "DRIVER_OK yoluna geçilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_features_positive",
        "negativeName": "os_virtio_transport_features_negative",
        "expectedMarker": "TURKOS/OS/K1475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; RO VERSION1 teklifleri girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“FEATURES_OK geri okuması false” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1473"
    },
    {
      "id": "K1474",
      "number": 1474,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.features",
      "stage": "negative",
      "title": "Feature negotiation sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Yalnız desteklenen altküme kabul edilir.",
      "action": "os_virtio_transport_features_negative testini oluştur: “FEATURES_OK geri okuması false”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yalnız desteklenen altküme kabul edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_features"
      },
      "dependencies": [
        "K1473"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "RO VERSION1 teklifleri",
      "counterexample": "FEATURES_OK geri okuması false",
      "guestAcceptance": "DRIVER_OK yoluna geçilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_features_positive",
        "negativeName": "os_virtio_transport_features_negative",
        "expectedMarker": "TURKOS/OS/K1475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "FEATURES_OK geri okuması false karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“FEATURES_OK geri okuması false” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1474"
    },
    {
      "id": "K1475",
      "number": 1475,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.features",
      "stage": "integration",
      "title": "Feature negotiation sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Yalnız desteklenen altküme kabul edilir.",
      "action": "Tek ürün Image'ında “DRIVER_OK yoluna geçilmez” kabulünü koştur. scripts/os-acceptance/virtio_transport.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yalnız desteklenen altküme kabul edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_features"
      },
      "dependencies": [
        "K1474"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "RO VERSION1 teklifleri",
      "counterexample": "FEATURES_OK geri okuması false",
      "guestAcceptance": "DRIVER_OK yoluna geçilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_features_positive",
        "negativeName": "os_virtio_transport_features_negative",
        "expectedMarker": "TURKOS/OS/K1475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "DRIVER_OK yoluna geçilmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“FEATURES_OK geri okuması false” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1475"
    },
    {
      "id": "K1476",
      "number": 1476,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.status",
      "stage": "contract",
      "title": "Virtio status yaşamı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset ACK DRIVER FEATURES READY sırası korunur.",
      "action": "“Virtio status yaşamı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Reset ACK DRIVER FEATURES READY sırası korunur. “Tam status geçişi” kabulü ile “FAILED sonrası queue enable” reddini aynı sözleşmeye bağla.",
      "invariant": "Reset ACK DRIVER FEATURES READY sırası korunur",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_status"
      },
      "dependencies": [
        "K1475"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tam status geçişi",
      "counterexample": "FAILED sonrası queue enable",
      "guestAcceptance": "Aygıt tanımlı başarısız durumda kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_status_positive",
        "negativeName": "os_virtio_transport_status_negative",
        "expectedMarker": "TURKOS/OS/K1480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Reset ACK DRIVER FEATURES READY sırası korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“FAILED sonrası queue enable” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1476"
    },
    {
      "id": "K1477",
      "number": 1477,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.status",
      "stage": "implementation",
      "title": "Virtio status yaşamı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset ACK DRIVER FEATURES READY sırası korunur.",
      "action": "kernel/src/runtime/virtio_transport.rs hedefinde os_virtio_transport_status yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Reset ACK DRIVER FEATURES READY sırası korunur",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_status"
      },
      "dependencies": [
        "K1476"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tam status geçişi",
      "counterexample": "FAILED sonrası queue enable",
      "guestAcceptance": "Aygıt tanımlı başarısız durumda kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_status_positive",
        "negativeName": "os_virtio_transport_status_negative",
        "expectedMarker": "TURKOS/OS/K1480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Tam status geçişi ile FAILED sonrası queue enable ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“FAILED sonrası queue enable” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1477"
    },
    {
      "id": "K1478",
      "number": 1478,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.status",
      "stage": "positive",
      "title": "Virtio status yaşamı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset ACK DRIVER FEATURES READY sırası korunur.",
      "action": "os_virtio_transport_status_positive testini oluştur: “Tam status geçişi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Reset ACK DRIVER FEATURES READY sırası korunur",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_status"
      },
      "dependencies": [
        "K1477"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tam status geçişi",
      "counterexample": "FAILED sonrası queue enable",
      "guestAcceptance": "Aygıt tanımlı başarısız durumda kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_status_positive",
        "negativeName": "os_virtio_transport_status_negative",
        "expectedMarker": "TURKOS/OS/K1480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Tam status geçişi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“FAILED sonrası queue enable” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1478"
    },
    {
      "id": "K1479",
      "number": 1479,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.status",
      "stage": "negative",
      "title": "Virtio status yaşamı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset ACK DRIVER FEATURES READY sırası korunur.",
      "action": "os_virtio_transport_status_negative testini oluştur: “FAILED sonrası queue enable”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Reset ACK DRIVER FEATURES READY sırası korunur",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_status"
      },
      "dependencies": [
        "K1478"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tam status geçişi",
      "counterexample": "FAILED sonrası queue enable",
      "guestAcceptance": "Aygıt tanımlı başarısız durumda kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_status_positive",
        "negativeName": "os_virtio_transport_status_negative",
        "expectedMarker": "TURKOS/OS/K1480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "FAILED sonrası queue enable karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“FAILED sonrası queue enable” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1479"
    },
    {
      "id": "K1480",
      "number": 1480,
      "phase": 9,
      "module": "virtio_transport",
      "feature": "virtio_transport.status",
      "stage": "integration",
      "title": "Virtio status yaşamı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Reset ACK DRIVER FEATURES READY sırası korunur.",
      "action": "Tek ürün Image'ında “Aygıt tanımlı başarısız durumda kalır” kabulünü koştur. scripts/os-acceptance/virtio_transport.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Reset ACK DRIVER FEATURES READY sırası korunur",
      "source": {
        "target": "kernel/src/runtime/virtio_transport.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_transport_status"
      },
      "dependencies": [
        "K1479"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Tam status geçişi",
      "counterexample": "FAILED sonrası queue enable",
      "guestAcceptance": "Aygıt tanımlı başarısız durumda kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_transport.rs",
        "harness": "scripts/os-acceptance/virtio_transport.mjs",
        "positiveName": "os_virtio_transport_status_positive",
        "negativeName": "os_virtio_transport_status_negative",
        "expectedMarker": "TURKOS/OS/K1480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aygıt tanımlı başarısız durumda kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“FAILED sonrası queue enable” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1480"
    },
    {
      "id": "K1481",
      "number": 1481,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.descriptors",
      "stage": "contract",
      "title": "Descriptor zincir sahipliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Zincir döngüsüz ve tampon içindedir.",
      "action": "“Descriptor zincir sahipliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Zincir döngüsüz ve tampon içindedir. “Üç descriptor read isteği” kabulü ile “Next kendi kendini gösterir” reddini aynı sözleşmeye bağla.",
      "invariant": "Zincir döngüsüz ve tampon içindedir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_descriptors"
      },
      "dependencies": [
        "K1480"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Üç descriptor read isteği",
      "counterexample": "Next kendi kendini gösterir",
      "guestAcceptance": "Bozuk zincir yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_descriptors_positive",
        "negativeName": "os_virtqueue_descriptors_negative",
        "expectedMarker": "TURKOS/OS/K1485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Zincir döngüsüz ve tampon içindedir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Next kendi kendini gösterir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1481"
    },
    {
      "id": "K1482",
      "number": 1482,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.descriptors",
      "stage": "implementation",
      "title": "Descriptor zincir sahipliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Zincir döngüsüz ve tampon içindedir.",
      "action": "kernel/src/runtime/virtqueue.rs hedefinde os_virtqueue_descriptors yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Zincir döngüsüz ve tampon içindedir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_descriptors"
      },
      "dependencies": [
        "K1481"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Üç descriptor read isteği",
      "counterexample": "Next kendi kendini gösterir",
      "guestAcceptance": "Bozuk zincir yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_descriptors_positive",
        "negativeName": "os_virtqueue_descriptors_negative",
        "expectedMarker": "TURKOS/OS/K1485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç descriptor read isteği ile Next kendi kendini gösterir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Next kendi kendini gösterir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1482"
    },
    {
      "id": "K1483",
      "number": 1483,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.descriptors",
      "stage": "positive",
      "title": "Descriptor zincir sahipliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Zincir döngüsüz ve tampon içindedir.",
      "action": "os_virtqueue_descriptors_positive testini oluştur: “Üç descriptor read isteği”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Zincir döngüsüz ve tampon içindedir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_descriptors"
      },
      "dependencies": [
        "K1482"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Üç descriptor read isteği",
      "counterexample": "Next kendi kendini gösterir",
      "guestAcceptance": "Bozuk zincir yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_descriptors_positive",
        "negativeName": "os_virtqueue_descriptors_negative",
        "expectedMarker": "TURKOS/OS/K1485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç descriptor read isteği girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Next kendi kendini gösterir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1483"
    },
    {
      "id": "K1484",
      "number": 1484,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.descriptors",
      "stage": "negative",
      "title": "Descriptor zincir sahipliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Zincir döngüsüz ve tampon içindedir.",
      "action": "os_virtqueue_descriptors_negative testini oluştur: “Next kendi kendini gösterir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Zincir döngüsüz ve tampon içindedir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_descriptors"
      },
      "dependencies": [
        "K1483"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Üç descriptor read isteği",
      "counterexample": "Next kendi kendini gösterir",
      "guestAcceptance": "Bozuk zincir yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_descriptors_positive",
        "negativeName": "os_virtqueue_descriptors_negative",
        "expectedMarker": "TURKOS/OS/K1485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Next kendi kendini gösterir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Next kendi kendini gösterir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1484"
    },
    {
      "id": "K1485",
      "number": 1485,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.descriptors",
      "stage": "integration",
      "title": "Descriptor zincir sahipliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Zincir döngüsüz ve tampon içindedir.",
      "action": "Tek ürün Image'ında “Bozuk zincir yayımlanmaz” kabulünü koştur. scripts/os-acceptance/virtqueue.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Zincir döngüsüz ve tampon içindedir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_descriptors"
      },
      "dependencies": [
        "K1484"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Üç descriptor read isteği",
      "counterexample": "Next kendi kendini gösterir",
      "guestAcceptance": "Bozuk zincir yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_descriptors_positive",
        "negativeName": "os_virtqueue_descriptors_negative",
        "expectedMarker": "TURKOS/OS/K1485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk zincir yayımlanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Next kendi kendini gösterir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1485"
    },
    {
      "id": "K1486",
      "number": 1486,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.indices",
      "stage": "contract",
      "title": "Avail used ring sarmalanması · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: u16 index sarmalanması açık hesaptır.",
      "action": "“Avail used ring sarmalanması” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: u16 index sarmalanması açık hesaptır. “65535 sonrası sıfır” kabulü ile “Aygıt used index kapasite aşımı” reddini aynı sözleşmeye bağla.",
      "invariant": "u16 index sarmalanması açık hesaptır",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_indices"
      },
      "dependencies": [
        "K1485"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "65535 sonrası sıfır",
      "counterexample": "Aygıt used index kapasite aşımı",
      "guestAcceptance": "Eski completion yeni istek sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_indices_positive",
        "negativeName": "os_virtqueue_indices_negative",
        "expectedMarker": "TURKOS/OS/K1490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu u16 index sarmalanması açık hesaptır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Aygıt used index kapasite aşımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1486"
    },
    {
      "id": "K1487",
      "number": 1487,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.indices",
      "stage": "implementation",
      "title": "Avail used ring sarmalanması · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: u16 index sarmalanması açık hesaptır.",
      "action": "kernel/src/runtime/virtqueue.rs hedefinde os_virtqueue_indices yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "u16 index sarmalanması açık hesaptır",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_indices"
      },
      "dependencies": [
        "K1486"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "65535 sonrası sıfır",
      "counterexample": "Aygıt used index kapasite aşımı",
      "guestAcceptance": "Eski completion yeni istek sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_indices_positive",
        "negativeName": "os_virtqueue_indices_negative",
        "expectedMarker": "TURKOS/OS/K1490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 65535 sonrası sıfır ile Aygıt used index kapasite aşımı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Aygıt used index kapasite aşımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1487"
    },
    {
      "id": "K1488",
      "number": 1488,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.indices",
      "stage": "positive",
      "title": "Avail used ring sarmalanması · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: u16 index sarmalanması açık hesaptır.",
      "action": "os_virtqueue_indices_positive testini oluştur: “65535 sonrası sıfır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "u16 index sarmalanması açık hesaptır",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_indices"
      },
      "dependencies": [
        "K1487"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "65535 sonrası sıfır",
      "counterexample": "Aygıt used index kapasite aşımı",
      "guestAcceptance": "Eski completion yeni istek sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_indices_positive",
        "negativeName": "os_virtqueue_indices_negative",
        "expectedMarker": "TURKOS/OS/K1490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 65535 sonrası sıfır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Aygıt used index kapasite aşımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1488"
    },
    {
      "id": "K1489",
      "number": 1489,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.indices",
      "stage": "negative",
      "title": "Avail used ring sarmalanması · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: u16 index sarmalanması açık hesaptır.",
      "action": "os_virtqueue_indices_negative testini oluştur: “Aygıt used index kapasite aşımı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "u16 index sarmalanması açık hesaptır",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_indices"
      },
      "dependencies": [
        "K1488"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "65535 sonrası sıfır",
      "counterexample": "Aygıt used index kapasite aşımı",
      "guestAcceptance": "Eski completion yeni istek sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_indices_positive",
        "negativeName": "os_virtqueue_indices_negative",
        "expectedMarker": "TURKOS/OS/K1490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aygıt used index kapasite aşımı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Aygıt used index kapasite aşımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1489"
    },
    {
      "id": "K1490",
      "number": 1490,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.indices",
      "stage": "integration",
      "title": "Avail used ring sarmalanması · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: u16 index sarmalanması açık hesaptır.",
      "action": "Tek ürün Image'ında “Eski completion yeni istek sayılmaz” kabulünü koştur. scripts/os-acceptance/virtqueue.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "u16 index sarmalanması açık hesaptır",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_indices"
      },
      "dependencies": [
        "K1489"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "65535 sonrası sıfır",
      "counterexample": "Aygıt used index kapasite aşımı",
      "guestAcceptance": "Eski completion yeni istek sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_indices_positive",
        "negativeName": "os_virtqueue_indices_negative",
        "expectedMarker": "TURKOS/OS/K1490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski completion yeni istek sayılmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Aygıt used index kapasite aşımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1490"
    },
    {
      "id": "K1491",
      "number": 1491,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.completion",
      "stage": "contract",
      "title": "Tamamlama ID uzunluk status · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: ID tam bir canlı istek eşleştirir.",
      "action": "“Tamamlama ID uzunluk status” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: ID tam bir canlı istek eşleştirir. “İki out of order completion” kabulü ile “Yabancı veya tekrar ID” reddini aynı sözleşmeye bağla.",
      "invariant": "ID tam bir canlı istek eşleştirir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_completion"
      },
      "dependencies": [
        "K1490"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki out of order completion",
      "counterexample": "Yabancı veya tekrar ID",
      "guestAcceptance": "DMA yanlış sahibine iade edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_completion_positive",
        "negativeName": "os_virtqueue_completion_negative",
        "expectedMarker": "TURKOS/OS/K1495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu ID tam bir canlı istek eşleştirir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı veya tekrar ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1491"
    },
    {
      "id": "K1492",
      "number": 1492,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.completion",
      "stage": "implementation",
      "title": "Tamamlama ID uzunluk status · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: ID tam bir canlı istek eşleştirir.",
      "action": "kernel/src/runtime/virtqueue.rs hedefinde os_virtqueue_completion yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "ID tam bir canlı istek eşleştirir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_completion"
      },
      "dependencies": [
        "K1491"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki out of order completion",
      "counterexample": "Yabancı veya tekrar ID",
      "guestAcceptance": "DMA yanlış sahibine iade edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_completion_positive",
        "negativeName": "os_virtqueue_completion_negative",
        "expectedMarker": "TURKOS/OS/K1495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki out of order completion ile Yabancı veya tekrar ID ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı veya tekrar ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1492"
    },
    {
      "id": "K1493",
      "number": 1493,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.completion",
      "stage": "positive",
      "title": "Tamamlama ID uzunluk status · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: ID tam bir canlı istek eşleştirir.",
      "action": "os_virtqueue_completion_positive testini oluştur: “İki out of order completion”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "ID tam bir canlı istek eşleştirir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_completion"
      },
      "dependencies": [
        "K1492"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki out of order completion",
      "counterexample": "Yabancı veya tekrar ID",
      "guestAcceptance": "DMA yanlış sahibine iade edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_completion_positive",
        "negativeName": "os_virtqueue_completion_negative",
        "expectedMarker": "TURKOS/OS/K1495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki out of order completion girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı veya tekrar ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1493"
    },
    {
      "id": "K1494",
      "number": 1494,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.completion",
      "stage": "negative",
      "title": "Tamamlama ID uzunluk status · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: ID tam bir canlı istek eşleştirir.",
      "action": "os_virtqueue_completion_negative testini oluştur: “Yabancı veya tekrar ID”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "ID tam bir canlı istek eşleştirir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_completion"
      },
      "dependencies": [
        "K1493"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki out of order completion",
      "counterexample": "Yabancı veya tekrar ID",
      "guestAcceptance": "DMA yanlış sahibine iade edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_completion_positive",
        "negativeName": "os_virtqueue_completion_negative",
        "expectedMarker": "TURKOS/OS/K1495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı veya tekrar ID karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı veya tekrar ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1494"
    },
    {
      "id": "K1495",
      "number": 1495,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.completion",
      "stage": "integration",
      "title": "Tamamlama ID uzunluk status · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: ID tam bir canlı istek eşleştirir.",
      "action": "Tek ürün Image'ında “DMA yanlış sahibine iade edilmez” kabulünü koştur. scripts/os-acceptance/virtqueue.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "ID tam bir canlı istek eşleştirir",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_completion"
      },
      "dependencies": [
        "K1494"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "İki out of order completion",
      "counterexample": "Yabancı veya tekrar ID",
      "guestAcceptance": "DMA yanlış sahibine iade edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_completion_positive",
        "negativeName": "os_virtqueue_completion_negative",
        "expectedMarker": "TURKOS/OS/K1495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "DMA yanlış sahibine iade edilmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı veya tekrar ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1495"
    },
    {
      "id": "K1496",
      "number": 1496,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.backpressure",
      "stage": "contract",
      "title": "Dolu kuyruk ve reset yolu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Dolu queue mevcut istekleri korur.",
      "action": "“Dolu kuyruk ve reset yolu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Dolu queue mevcut istekleri korur. “Limitte descriptor tüketimi” kabulü ile “Bir fazla baş talebi” reddini aynı sözleşmeye bağla.",
      "invariant": "Dolu queue mevcut istekleri korur",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_backpressure"
      },
      "dependencies": [
        "K1495"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Limitte descriptor tüketimi",
      "counterexample": "Bir fazla baş talebi",
      "guestAcceptance": "EAGAIN sonra tamamlanan iş ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_backpressure_positive",
        "negativeName": "os_virtqueue_backpressure_negative",
        "expectedMarker": "TURKOS/OS/K1500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Dolu queue mevcut istekleri korur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir fazla baş talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1496"
    },
    {
      "id": "K1497",
      "number": 1497,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.backpressure",
      "stage": "implementation",
      "title": "Dolu kuyruk ve reset yolu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Dolu queue mevcut istekleri korur.",
      "action": "kernel/src/runtime/virtqueue.rs hedefinde os_virtqueue_backpressure yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Dolu queue mevcut istekleri korur",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_backpressure"
      },
      "dependencies": [
        "K1496"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Limitte descriptor tüketimi",
      "counterexample": "Bir fazla baş talebi",
      "guestAcceptance": "EAGAIN sonra tamamlanan iş ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_backpressure_positive",
        "negativeName": "os_virtqueue_backpressure_negative",
        "expectedMarker": "TURKOS/OS/K1500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Limitte descriptor tüketimi ile Bir fazla baş talebi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir fazla baş talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1497"
    },
    {
      "id": "K1498",
      "number": 1498,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.backpressure",
      "stage": "positive",
      "title": "Dolu kuyruk ve reset yolu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Dolu queue mevcut istekleri korur.",
      "action": "os_virtqueue_backpressure_positive testini oluştur: “Limitte descriptor tüketimi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Dolu queue mevcut istekleri korur",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_backpressure"
      },
      "dependencies": [
        "K1497"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Limitte descriptor tüketimi",
      "counterexample": "Bir fazla baş talebi",
      "guestAcceptance": "EAGAIN sonra tamamlanan iş ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_backpressure_positive",
        "negativeName": "os_virtqueue_backpressure_negative",
        "expectedMarker": "TURKOS/OS/K1500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Limitte descriptor tüketimi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir fazla baş talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1498"
    },
    {
      "id": "K1499",
      "number": 1499,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.backpressure",
      "stage": "negative",
      "title": "Dolu kuyruk ve reset yolu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Dolu queue mevcut istekleri korur.",
      "action": "os_virtqueue_backpressure_negative testini oluştur: “Bir fazla baş talebi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Dolu queue mevcut istekleri korur",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_backpressure"
      },
      "dependencies": [
        "K1498"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Limitte descriptor tüketimi",
      "counterexample": "Bir fazla baş talebi",
      "guestAcceptance": "EAGAIN sonra tamamlanan iş ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_backpressure_positive",
        "negativeName": "os_virtqueue_backpressure_negative",
        "expectedMarker": "TURKOS/OS/K1500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir fazla baş talebi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir fazla baş talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1499"
    },
    {
      "id": "K1500",
      "number": 1500,
      "phase": 9,
      "module": "virtqueue",
      "feature": "virtqueue.backpressure",
      "stage": "integration",
      "title": "Dolu kuyruk ve reset yolu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "QEMU aygıtları host VM ayarlarından ayrı konuk sürücüleridir. Ürün discovery kaynak pin IRQ ve detach modelini kurar. Bu hamlenin koruduğu değişmez: Dolu queue mevcut istekleri korur.",
      "action": "Tek ürün Image'ında “EAGAIN sonra tamamlanan iş ilerler” kabulünü koştur. scripts/os-acceptance/virtqueue.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Dolu queue mevcut istekleri korur",
      "source": {
        "target": "kernel/src/runtime/virtqueue.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtqueue_backpressure"
      },
      "dependencies": [
        "K1499"
      ],
      "phasePrerequisites": [
        8
      ],
      "positive": "Limitte descriptor tüketimi",
      "counterexample": "Bir fazla baş talebi",
      "guestAcceptance": "EAGAIN sonra tamamlanan iş ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtqueue.rs",
        "harness": "scripts/os-acceptance/virtqueue.mjs",
        "positiveName": "os_virtqueue_backpressure_positive",
        "negativeName": "os_virtqueue_backpressure_negative",
        "expectedMarker": "TURKOS/OS/K1500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EAGAIN sonra tamamlanan iş ilerler; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir fazla baş talebi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-09#k1500"
    },
    {
      "id": "K1501",
      "number": 1501,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.geometry",
      "stage": "contract",
      "title": "Sektör ve kapasite sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: LBA çarpımı byte kapasitesini aşmaz.",
      "action": "“Sektör ve kapasite sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: LBA çarpımı byte kapasitesini aşmaz. “İlk ve son 512 bayt sektör” kabulü ile “LBA toplamında taşma” reddini aynı sözleşmeye bağla.",
      "invariant": "LBA çarpımı byte kapasitesini aşmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_geometry"
      },
      "dependencies": [],
      "phasePrerequisites": [
        9
      ],
      "positive": "İlk ve son 512 bayt sektör",
      "counterexample": "LBA toplamında taşma",
      "guestAcceptance": "Sınır dışı istek kuyruğa çıkmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_geometry_positive",
        "negativeName": "os_block_io_geometry_negative",
        "expectedMarker": "TURKOS/OS/K1505: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu LBA çarpımı byte kapasitesini aşmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“LBA toplamında taşma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1501"
    },
    {
      "id": "K1502",
      "number": 1502,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.geometry",
      "stage": "implementation",
      "title": "Sektör ve kapasite sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: LBA çarpımı byte kapasitesini aşmaz.",
      "action": "kernel/src/runtime/block_io.rs hedefinde os_block_io_geometry yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ro_turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "LBA çarpımı byte kapasitesini aşmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_geometry"
      },
      "dependencies": [
        "K1501"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İlk ve son 512 bayt sektör",
      "counterexample": "LBA toplamında taşma",
      "guestAcceptance": "Sınır dışı istek kuyruğa çıkmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_geometry_positive",
        "negativeName": "os_block_io_geometry_negative",
        "expectedMarker": "TURKOS/OS/K1505: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İlk ve son 512 bayt sektör ile LBA toplamında taşma ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“LBA toplamında taşma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1502"
    },
    {
      "id": "K1503",
      "number": 1503,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.geometry",
      "stage": "positive",
      "title": "Sektör ve kapasite sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: LBA çarpımı byte kapasitesini aşmaz.",
      "action": "os_block_io_geometry_positive testini oluştur: “İlk ve son 512 bayt sektör”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "LBA çarpımı byte kapasitesini aşmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_geometry"
      },
      "dependencies": [
        "K1502"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İlk ve son 512 bayt sektör",
      "counterexample": "LBA toplamında taşma",
      "guestAcceptance": "Sınır dışı istek kuyruğa çıkmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_geometry_positive",
        "negativeName": "os_block_io_geometry_negative",
        "expectedMarker": "TURKOS/OS/K1505: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İlk ve son 512 bayt sektör girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“LBA toplamında taşma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1503"
    },
    {
      "id": "K1504",
      "number": 1504,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.geometry",
      "stage": "negative",
      "title": "Sektör ve kapasite sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: LBA çarpımı byte kapasitesini aşmaz.",
      "action": "os_block_io_geometry_negative testini oluştur: “LBA toplamında taşma”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "LBA çarpımı byte kapasitesini aşmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_geometry"
      },
      "dependencies": [
        "K1503"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İlk ve son 512 bayt sektör",
      "counterexample": "LBA toplamında taşma",
      "guestAcceptance": "Sınır dışı istek kuyruğa çıkmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_geometry_positive",
        "negativeName": "os_block_io_geometry_negative",
        "expectedMarker": "TURKOS/OS/K1505: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "LBA toplamında taşma karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“LBA toplamında taşma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1504"
    },
    {
      "id": "K1505",
      "number": 1505,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.geometry",
      "stage": "integration",
      "title": "Sektör ve kapasite sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: LBA çarpımı byte kapasitesini aşmaz.",
      "action": "Tek ürün Image'ında “Sınır dışı istek kuyruğa çıkmaz” kabulünü koştur. scripts/os-acceptance/block_io.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "LBA çarpımı byte kapasitesini aşmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_geometry"
      },
      "dependencies": [
        "K1504"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İlk ve son 512 bayt sektör",
      "counterexample": "LBA toplamında taşma",
      "guestAcceptance": "Sınır dışı istek kuyruğa çıkmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_geometry_positive",
        "negativeName": "os_block_io_geometry_negative",
        "expectedMarker": "TURKOS/OS/K1505: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sınır dışı istek kuyruğa çıkmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“LBA toplamında taşma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1505"
    },
    {
      "id": "K1506",
      "number": 1506,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.requests",
      "stage": "contract",
      "title": "Sahipli blok istek nesnesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Tampon deadline device nesli sabittir.",
      "action": "“Sahipli blok istek nesnesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Tampon deadline device nesli sabittir. “İki ayrı okuma isteği” kabulü ile “Eski aygıt nesli” reddini aynı sözleşmeye bağla.",
      "invariant": "Tampon deadline device nesli sabittir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_requests"
      },
      "dependencies": [
        "K1505"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki ayrı okuma isteği",
      "counterexample": "Eski aygıt nesli",
      "guestAcceptance": "Completion yalnız doğru istekle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_requests_positive",
        "negativeName": "os_block_io_requests_negative",
        "expectedMarker": "TURKOS/OS/K1510: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Tampon deadline device nesli sabittir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski aygıt nesli” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1506"
    },
    {
      "id": "K1507",
      "number": 1507,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.requests",
      "stage": "implementation",
      "title": "Sahipli blok istek nesnesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Tampon deadline device nesli sabittir.",
      "action": "kernel/src/runtime/block_io.rs hedefinde os_block_io_requests yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ro_turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Tampon deadline device nesli sabittir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_requests"
      },
      "dependencies": [
        "K1506"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki ayrı okuma isteği",
      "counterexample": "Eski aygıt nesli",
      "guestAcceptance": "Completion yalnız doğru istekle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_requests_positive",
        "negativeName": "os_block_io_requests_negative",
        "expectedMarker": "TURKOS/OS/K1510: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki ayrı okuma isteği ile Eski aygıt nesli ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski aygıt nesli” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1507"
    },
    {
      "id": "K1508",
      "number": 1508,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.requests",
      "stage": "positive",
      "title": "Sahipli blok istek nesnesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Tampon deadline device nesli sabittir.",
      "action": "os_block_io_requests_positive testini oluştur: “İki ayrı okuma isteği”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Tampon deadline device nesli sabittir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_requests"
      },
      "dependencies": [
        "K1507"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki ayrı okuma isteği",
      "counterexample": "Eski aygıt nesli",
      "guestAcceptance": "Completion yalnız doğru istekle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_requests_positive",
        "negativeName": "os_block_io_requests_negative",
        "expectedMarker": "TURKOS/OS/K1510: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki ayrı okuma isteği girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski aygıt nesli” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1508"
    },
    {
      "id": "K1509",
      "number": 1509,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.requests",
      "stage": "negative",
      "title": "Sahipli blok istek nesnesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Tampon deadline device nesli sabittir.",
      "action": "os_block_io_requests_negative testini oluştur: “Eski aygıt nesli”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Tampon deadline device nesli sabittir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_requests"
      },
      "dependencies": [
        "K1508"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki ayrı okuma isteği",
      "counterexample": "Eski aygıt nesli",
      "guestAcceptance": "Completion yalnız doğru istekle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_requests_positive",
        "negativeName": "os_block_io_requests_negative",
        "expectedMarker": "TURKOS/OS/K1510: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski aygıt nesli karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski aygıt nesli” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1509"
    },
    {
      "id": "K1510",
      "number": 1510,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.requests",
      "stage": "integration",
      "title": "Sahipli blok istek nesnesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Tampon deadline device nesli sabittir.",
      "action": "Tek ürün Image'ında “Completion yalnız doğru istekle eşleşir” kabulünü koştur. scripts/os-acceptance/block_io.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Tampon deadline device nesli sabittir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_requests"
      },
      "dependencies": [
        "K1509"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki ayrı okuma isteği",
      "counterexample": "Eski aygıt nesli",
      "guestAcceptance": "Completion yalnız doğru istekle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_requests_positive",
        "negativeName": "os_block_io_requests_negative",
        "expectedMarker": "TURKOS/OS/K1510: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Completion yalnız doğru istekle eşleşir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski aygıt nesli” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1510"
    },
    {
      "id": "K1511",
      "number": 1511,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.timeouts",
      "stage": "contract",
      "title": "Blok timeout ve iptal · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Timeout DMAyı erken bırakmaz.",
      "action": "“Blok timeout ve iptal” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Timeout DMAyı erken bırakmaz. “Yanıtsız read” kabulü ile “Cancel sonra geç completion” reddini aynı sözleşmeye bağla.",
      "invariant": "Timeout DMAyı erken bırakmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_timeouts"
      },
      "dependencies": [
        "K1510"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Yanıtsız read",
      "counterexample": "Cancel sonra geç completion",
      "guestAcceptance": "Reset onayı sonrası kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_timeouts_positive",
        "negativeName": "os_block_io_timeouts_negative",
        "expectedMarker": "TURKOS/OS/K1515: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Timeout DMAyı erken bırakmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Cancel sonra geç completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1511"
    },
    {
      "id": "K1512",
      "number": 1512,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.timeouts",
      "stage": "implementation",
      "title": "Blok timeout ve iptal · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Timeout DMAyı erken bırakmaz.",
      "action": "kernel/src/runtime/block_io.rs hedefinde os_block_io_timeouts yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ro_turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Timeout DMAyı erken bırakmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_timeouts"
      },
      "dependencies": [
        "K1511"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Yanıtsız read",
      "counterexample": "Cancel sonra geç completion",
      "guestAcceptance": "Reset onayı sonrası kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_timeouts_positive",
        "negativeName": "os_block_io_timeouts_negative",
        "expectedMarker": "TURKOS/OS/K1515: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yanıtsız read ile Cancel sonra geç completion ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Cancel sonra geç completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1512"
    },
    {
      "id": "K1513",
      "number": 1513,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.timeouts",
      "stage": "positive",
      "title": "Blok timeout ve iptal · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Timeout DMAyı erken bırakmaz.",
      "action": "os_block_io_timeouts_positive testini oluştur: “Yanıtsız read”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Timeout DMAyı erken bırakmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_timeouts"
      },
      "dependencies": [
        "K1512"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Yanıtsız read",
      "counterexample": "Cancel sonra geç completion",
      "guestAcceptance": "Reset onayı sonrası kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_timeouts_positive",
        "negativeName": "os_block_io_timeouts_negative",
        "expectedMarker": "TURKOS/OS/K1515: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yanıtsız read girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Cancel sonra geç completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1513"
    },
    {
      "id": "K1514",
      "number": 1514,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.timeouts",
      "stage": "negative",
      "title": "Blok timeout ve iptal · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Timeout DMAyı erken bırakmaz.",
      "action": "os_block_io_timeouts_negative testini oluştur: “Cancel sonra geç completion”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Timeout DMAyı erken bırakmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_timeouts"
      },
      "dependencies": [
        "K1513"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Yanıtsız read",
      "counterexample": "Cancel sonra geç completion",
      "guestAcceptance": "Reset onayı sonrası kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_timeouts_positive",
        "negativeName": "os_block_io_timeouts_negative",
        "expectedMarker": "TURKOS/OS/K1515: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Cancel sonra geç completion karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Cancel sonra geç completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1514"
    },
    {
      "id": "K1515",
      "number": 1515,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.timeouts",
      "stage": "integration",
      "title": "Blok timeout ve iptal · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Timeout DMAyı erken bırakmaz.",
      "action": "Tek ürün Image'ında “Reset onayı sonrası kaynak iadesi” kabulünü koştur. scripts/os-acceptance/block_io.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Timeout DMAyı erken bırakmaz",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_timeouts"
      },
      "dependencies": [
        "K1514"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Yanıtsız read",
      "counterexample": "Cancel sonra geç completion",
      "guestAcceptance": "Reset onayı sonrası kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_timeouts_positive",
        "negativeName": "os_block_io_timeouts_negative",
        "expectedMarker": "TURKOS/OS/K1515: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Reset onayı sonrası kaynak iadesi; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Cancel sonra geç completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1515"
    },
    {
      "id": "K1516",
      "number": 1516,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.errors",
      "stage": "contract",
      "title": "Kısa I/O ve EIO ayrımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Eksik bytes başarılı sektör değildir.",
      "action": "“Kısa I/O ve EIO ayrımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Eksik bytes başarılı sektör değildir. “Tam sector status0” kabulü ile “Used length 257” reddini aynı sözleşmeye bağla.",
      "invariant": "Eksik bytes başarılı sektör değildir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_errors"
      },
      "dependencies": [
        "K1515"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Tam sector status0",
      "counterexample": "Used length 257",
      "guestAcceptance": "VFS açık I/O hatası görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_errors_positive",
        "negativeName": "os_block_io_errors_negative",
        "expectedMarker": "TURKOS/OS/K1520: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Eksik bytes başarılı sektör değildir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Used length 257” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1516"
    },
    {
      "id": "K1517",
      "number": 1517,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.errors",
      "stage": "implementation",
      "title": "Kısa I/O ve EIO ayrımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Eksik bytes başarılı sektör değildir.",
      "action": "kernel/src/runtime/block_io.rs hedefinde os_block_io_errors yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ro_turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Eksik bytes başarılı sektör değildir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_errors"
      },
      "dependencies": [
        "K1516"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Tam sector status0",
      "counterexample": "Used length 257",
      "guestAcceptance": "VFS açık I/O hatası görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_errors_positive",
        "negativeName": "os_block_io_errors_negative",
        "expectedMarker": "TURKOS/OS/K1520: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Tam sector status0 ile Used length 257 ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Used length 257” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1517"
    },
    {
      "id": "K1518",
      "number": 1518,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.errors",
      "stage": "positive",
      "title": "Kısa I/O ve EIO ayrımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Eksik bytes başarılı sektör değildir.",
      "action": "os_block_io_errors_positive testini oluştur: “Tam sector status0”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Eksik bytes başarılı sektör değildir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_errors"
      },
      "dependencies": [
        "K1517"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Tam sector status0",
      "counterexample": "Used length 257",
      "guestAcceptance": "VFS açık I/O hatası görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_errors_positive",
        "negativeName": "os_block_io_errors_negative",
        "expectedMarker": "TURKOS/OS/K1520: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Tam sector status0 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Used length 257” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1518"
    },
    {
      "id": "K1519",
      "number": 1519,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.errors",
      "stage": "negative",
      "title": "Kısa I/O ve EIO ayrımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Eksik bytes başarılı sektör değildir.",
      "action": "os_block_io_errors_negative testini oluştur: “Used length 257”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Eksik bytes başarılı sektör değildir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_errors"
      },
      "dependencies": [
        "K1518"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Tam sector status0",
      "counterexample": "Used length 257",
      "guestAcceptance": "VFS açık I/O hatası görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_errors_positive",
        "negativeName": "os_block_io_errors_negative",
        "expectedMarker": "TURKOS/OS/K1520: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Used length 257 karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Used length 257” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1519"
    },
    {
      "id": "K1520",
      "number": 1520,
      "phase": 10,
      "module": "block_io",
      "feature": "block_io.errors",
      "stage": "integration",
      "title": "Kısa I/O ve EIO ayrımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Eksik bytes başarılı sektör değildir.",
      "action": "Tek ürün Image'ında “VFS açık I/O hatası görür” kabulünü koştur. scripts/os-acceptance/block_io.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Eksik bytes başarılı sektör değildir",
      "source": {
        "target": "kernel/src/runtime/block_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ro_turkfs.rs",
        "existingReferenceSha256": "b9a8e37e00edbdfba0a86b93fa645015ff43be491d68d6280f1ae720b5154aa1",
        "symbol": "os_block_io_errors"
      },
      "dependencies": [
        "K1519"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Tam sector status0",
      "counterexample": "Used length 257",
      "guestAcceptance": "VFS açık I/O hatası görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/block_io.rs",
        "harness": "scripts/os-acceptance/block_io.mjs",
        "positiveName": "os_block_io_errors_positive",
        "negativeName": "os_block_io_errors_negative",
        "expectedMarker": "TURKOS/OS/K1520: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "VFS açık I/O hatası görür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Used length 257” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1520"
    },
    {
      "id": "K1521",
      "number": 1521,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.mbr",
      "stage": "contract",
      "title": "Sınırlı MBR parser · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bölümler disk kapasitesinde ve ayrı kalır.",
      "action": "“Sınırlı MBR parser” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bölümler disk kapasitesinde ve ayrı kalır. “İki geçerli primary bölüm” kabulü ile “Örtüşen start length” reddini aynı sözleşmeye bağla.",
      "invariant": "Bölümler disk kapasitesinde ve ayrı kalır",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_mbr"
      },
      "dependencies": [
        "K1520"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki geçerli primary bölüm",
      "counterexample": "Örtüşen start length",
      "guestAcceptance": "Bozuk disk mount edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_mbr_positive",
        "negativeName": "os_partitions_mbr_negative",
        "expectedMarker": "TURKOS/OS/K1525: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bölümler disk kapasitesinde ve ayrı kalır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Örtüşen start length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1521"
    },
    {
      "id": "K1522",
      "number": 1522,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.mbr",
      "stage": "implementation",
      "title": "Sınırlı MBR parser · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bölümler disk kapasitesinde ve ayrı kalır.",
      "action": "kernel/src/runtime/partitions.rs hedefinde os_partitions_mbr yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bölümler disk kapasitesinde ve ayrı kalır",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_mbr"
      },
      "dependencies": [
        "K1521"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki geçerli primary bölüm",
      "counterexample": "Örtüşen start length",
      "guestAcceptance": "Bozuk disk mount edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_mbr_positive",
        "negativeName": "os_partitions_mbr_negative",
        "expectedMarker": "TURKOS/OS/K1525: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki geçerli primary bölüm ile Örtüşen start length ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Örtüşen start length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1522"
    },
    {
      "id": "K1523",
      "number": 1523,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.mbr",
      "stage": "positive",
      "title": "Sınırlı MBR parser · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bölümler disk kapasitesinde ve ayrı kalır.",
      "action": "os_partitions_mbr_positive testini oluştur: “İki geçerli primary bölüm”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bölümler disk kapasitesinde ve ayrı kalır",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_mbr"
      },
      "dependencies": [
        "K1522"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki geçerli primary bölüm",
      "counterexample": "Örtüşen start length",
      "guestAcceptance": "Bozuk disk mount edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_mbr_positive",
        "negativeName": "os_partitions_mbr_negative",
        "expectedMarker": "TURKOS/OS/K1525: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki geçerli primary bölüm girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Örtüşen start length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1523"
    },
    {
      "id": "K1524",
      "number": 1524,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.mbr",
      "stage": "negative",
      "title": "Sınırlı MBR parser · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bölümler disk kapasitesinde ve ayrı kalır.",
      "action": "os_partitions_mbr_negative testini oluştur: “Örtüşen start length”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bölümler disk kapasitesinde ve ayrı kalır",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_mbr"
      },
      "dependencies": [
        "K1523"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki geçerli primary bölüm",
      "counterexample": "Örtüşen start length",
      "guestAcceptance": "Bozuk disk mount edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_mbr_positive",
        "negativeName": "os_partitions_mbr_negative",
        "expectedMarker": "TURKOS/OS/K1525: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Örtüşen start length karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Örtüşen start length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1524"
    },
    {
      "id": "K1525",
      "number": 1525,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.mbr",
      "stage": "integration",
      "title": "Sınırlı MBR parser · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bölümler disk kapasitesinde ve ayrı kalır.",
      "action": "Tek ürün Image'ında “Bozuk disk mount edilmez” kabulünü koştur. scripts/os-acceptance/partitions.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bölümler disk kapasitesinde ve ayrı kalır",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_mbr"
      },
      "dependencies": [
        "K1524"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki geçerli primary bölüm",
      "counterexample": "Örtüşen start length",
      "guestAcceptance": "Bozuk disk mount edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_mbr_positive",
        "negativeName": "os_partitions_mbr_negative",
        "expectedMarker": "TURKOS/OS/K1525: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk disk mount edilmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Örtüşen start length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1525"
    },
    {
      "id": "K1526",
      "number": 1526,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.gpt",
      "stage": "contract",
      "title": "GPT başlık ve tablo doğrulama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: CRC boy ve entry limitleri birlikte geçer.",
      "action": "“GPT başlık ve tablo doğrulama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: CRC boy ve entry limitleri birlikte geçer. “Primary ve backup GPT” kabulü ile “CRC bozuk veya aşırı entry” reddini aynı sözleşmeye bağla.",
      "invariant": "CRC boy ve entry limitleri birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_gpt"
      },
      "dependencies": [
        "K1525"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary ve backup GPT",
      "counterexample": "CRC bozuk veya aşırı entry",
      "guestAcceptance": "Açık parser ret disk yazısı yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_gpt_positive",
        "negativeName": "os_partitions_gpt_negative",
        "expectedMarker": "TURKOS/OS/K1530: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu CRC boy ve entry limitleri birlikte geçer kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“CRC bozuk veya aşırı entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1526"
    },
    {
      "id": "K1527",
      "number": 1527,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.gpt",
      "stage": "implementation",
      "title": "GPT başlık ve tablo doğrulama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: CRC boy ve entry limitleri birlikte geçer.",
      "action": "kernel/src/runtime/partitions.rs hedefinde os_partitions_gpt yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "CRC boy ve entry limitleri birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_gpt"
      },
      "dependencies": [
        "K1526"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary ve backup GPT",
      "counterexample": "CRC bozuk veya aşırı entry",
      "guestAcceptance": "Açık parser ret disk yazısı yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_gpt_positive",
        "negativeName": "os_partitions_gpt_negative",
        "expectedMarker": "TURKOS/OS/K1530: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Primary ve backup GPT ile CRC bozuk veya aşırı entry ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“CRC bozuk veya aşırı entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1527"
    },
    {
      "id": "K1528",
      "number": 1528,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.gpt",
      "stage": "positive",
      "title": "GPT başlık ve tablo doğrulama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: CRC boy ve entry limitleri birlikte geçer.",
      "action": "os_partitions_gpt_positive testini oluştur: “Primary ve backup GPT”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "CRC boy ve entry limitleri birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_gpt"
      },
      "dependencies": [
        "K1527"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary ve backup GPT",
      "counterexample": "CRC bozuk veya aşırı entry",
      "guestAcceptance": "Açık parser ret disk yazısı yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_gpt_positive",
        "negativeName": "os_partitions_gpt_negative",
        "expectedMarker": "TURKOS/OS/K1530: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Primary ve backup GPT girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“CRC bozuk veya aşırı entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1528"
    },
    {
      "id": "K1529",
      "number": 1529,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.gpt",
      "stage": "negative",
      "title": "GPT başlık ve tablo doğrulama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: CRC boy ve entry limitleri birlikte geçer.",
      "action": "os_partitions_gpt_negative testini oluştur: “CRC bozuk veya aşırı entry”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "CRC boy ve entry limitleri birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_gpt"
      },
      "dependencies": [
        "K1528"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary ve backup GPT",
      "counterexample": "CRC bozuk veya aşırı entry",
      "guestAcceptance": "Açık parser ret disk yazısı yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_gpt_positive",
        "negativeName": "os_partitions_gpt_negative",
        "expectedMarker": "TURKOS/OS/K1530: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "CRC bozuk veya aşırı entry karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“CRC bozuk veya aşırı entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1529"
    },
    {
      "id": "K1530",
      "number": 1530,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.gpt",
      "stage": "integration",
      "title": "GPT başlık ve tablo doğrulama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: CRC boy ve entry limitleri birlikte geçer.",
      "action": "Tek ürün Image'ında “Açık parser ret disk yazısı yok” kabulünü koştur. scripts/os-acceptance/partitions.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "CRC boy ve entry limitleri birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_gpt"
      },
      "dependencies": [
        "K1529"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary ve backup GPT",
      "counterexample": "CRC bozuk veya aşırı entry",
      "guestAcceptance": "Açık parser ret disk yazısı yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_gpt_positive",
        "negativeName": "os_partitions_gpt_negative",
        "expectedMarker": "TURKOS/OS/K1530: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Açık parser ret disk yazısı yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“CRC bozuk veya aşırı entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1530"
    },
    {
      "id": "K1531",
      "number": 1531,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.view",
      "stage": "contract",
      "title": "Partition blok görünümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Mantıksal LBA bölümü aşamaz.",
      "action": "“Partition blok görünümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Mantıksal LBA bölümü aşamaz. “Son bölüm sektör okuması” kabulü ile “Bölüm dışında LBA” reddini aynı sözleşmeye bağla.",
      "invariant": "Mantıksal LBA bölümü aşamaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_view"
      },
      "dependencies": [
        "K1530"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Son bölüm sektör okuması",
      "counterexample": "Bölüm dışında LBA",
      "guestAcceptance": "Ana disk komşusu değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_view_positive",
        "negativeName": "os_partitions_view_negative",
        "expectedMarker": "TURKOS/OS/K1535: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Mantıksal LBA bölümü aşamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bölüm dışında LBA” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1531"
    },
    {
      "id": "K1532",
      "number": 1532,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.view",
      "stage": "implementation",
      "title": "Partition blok görünümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Mantıksal LBA bölümü aşamaz.",
      "action": "kernel/src/runtime/partitions.rs hedefinde os_partitions_view yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Mantıksal LBA bölümü aşamaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_view"
      },
      "dependencies": [
        "K1531"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Son bölüm sektör okuması",
      "counterexample": "Bölüm dışında LBA",
      "guestAcceptance": "Ana disk komşusu değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_view_positive",
        "negativeName": "os_partitions_view_negative",
        "expectedMarker": "TURKOS/OS/K1535: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Son bölüm sektör okuması ile Bölüm dışında LBA ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bölüm dışında LBA” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1532"
    },
    {
      "id": "K1533",
      "number": 1533,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.view",
      "stage": "positive",
      "title": "Partition blok görünümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Mantıksal LBA bölümü aşamaz.",
      "action": "os_partitions_view_positive testini oluştur: “Son bölüm sektör okuması”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Mantıksal LBA bölümü aşamaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_view"
      },
      "dependencies": [
        "K1532"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Son bölüm sektör okuması",
      "counterexample": "Bölüm dışında LBA",
      "guestAcceptance": "Ana disk komşusu değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_view_positive",
        "negativeName": "os_partitions_view_negative",
        "expectedMarker": "TURKOS/OS/K1535: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Son bölüm sektör okuması girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bölüm dışında LBA” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1533"
    },
    {
      "id": "K1534",
      "number": 1534,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.view",
      "stage": "negative",
      "title": "Partition blok görünümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Mantıksal LBA bölümü aşamaz.",
      "action": "os_partitions_view_negative testini oluştur: “Bölüm dışında LBA”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Mantıksal LBA bölümü aşamaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_view"
      },
      "dependencies": [
        "K1533"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Son bölüm sektör okuması",
      "counterexample": "Bölüm dışında LBA",
      "guestAcceptance": "Ana disk komşusu değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_view_positive",
        "negativeName": "os_partitions_view_negative",
        "expectedMarker": "TURKOS/OS/K1535: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bölüm dışında LBA karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bölüm dışında LBA” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1534"
    },
    {
      "id": "K1535",
      "number": 1535,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.view",
      "stage": "integration",
      "title": "Partition blok görünümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Mantıksal LBA bölümü aşamaz.",
      "action": "Tek ürün Image'ında “Ana disk komşusu değişmez” kabulünü koştur. scripts/os-acceptance/partitions.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Mantıksal LBA bölümü aşamaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_view"
      },
      "dependencies": [
        "K1534"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Son bölüm sektör okuması",
      "counterexample": "Bölüm dışında LBA",
      "guestAcceptance": "Ana disk komşusu değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_view_positive",
        "negativeName": "os_partitions_view_negative",
        "expectedMarker": "TURKOS/OS/K1535: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ana disk komşusu değişmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bölüm dışında LBA” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1535"
    },
    {
      "id": "K1536",
      "number": 1536,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.recovery",
      "stage": "contract",
      "title": "Salt-okunur bölüm seçim politikası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bozuk ana başlık sessiz onarılmaz.",
      "action": "“Salt-okunur bölüm seçim politikası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bozuk ana başlık sessiz onarılmaz. “Primary bozuk backup geçerli” kabulü ile “İki header birbirini tutmaz” reddini aynı sözleşmeye bağla.",
      "invariant": "Bozuk ana başlık sessiz onarılmaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_recovery"
      },
      "dependencies": [
        "K1535"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary bozuk backup geçerli",
      "counterexample": "İki header birbirini tutmaz",
      "guestAcceptance": "Degraded RO mount açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_recovery_positive",
        "negativeName": "os_partitions_recovery_negative",
        "expectedMarker": "TURKOS/OS/K1540: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bozuk ana başlık sessiz onarılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki header birbirini tutmaz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1536"
    },
    {
      "id": "K1537",
      "number": 1537,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.recovery",
      "stage": "implementation",
      "title": "Salt-okunur bölüm seçim politikası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bozuk ana başlık sessiz onarılmaz.",
      "action": "kernel/src/runtime/partitions.rs hedefinde os_partitions_recovery yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bozuk ana başlık sessiz onarılmaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_recovery"
      },
      "dependencies": [
        "K1536"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary bozuk backup geçerli",
      "counterexample": "İki header birbirini tutmaz",
      "guestAcceptance": "Degraded RO mount açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_recovery_positive",
        "negativeName": "os_partitions_recovery_negative",
        "expectedMarker": "TURKOS/OS/K1540: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Primary bozuk backup geçerli ile İki header birbirini tutmaz ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki header birbirini tutmaz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1537"
    },
    {
      "id": "K1538",
      "number": 1538,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.recovery",
      "stage": "positive",
      "title": "Salt-okunur bölüm seçim politikası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bozuk ana başlık sessiz onarılmaz.",
      "action": "os_partitions_recovery_positive testini oluştur: “Primary bozuk backup geçerli”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bozuk ana başlık sessiz onarılmaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_recovery"
      },
      "dependencies": [
        "K1537"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary bozuk backup geçerli",
      "counterexample": "İki header birbirini tutmaz",
      "guestAcceptance": "Degraded RO mount açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_recovery_positive",
        "negativeName": "os_partitions_recovery_negative",
        "expectedMarker": "TURKOS/OS/K1540: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Primary bozuk backup geçerli girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki header birbirini tutmaz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1538"
    },
    {
      "id": "K1539",
      "number": 1539,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.recovery",
      "stage": "negative",
      "title": "Salt-okunur bölüm seçim politikası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bozuk ana başlık sessiz onarılmaz.",
      "action": "os_partitions_recovery_negative testini oluştur: “İki header birbirini tutmaz”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bozuk ana başlık sessiz onarılmaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_recovery"
      },
      "dependencies": [
        "K1538"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary bozuk backup geçerli",
      "counterexample": "İki header birbirini tutmaz",
      "guestAcceptance": "Degraded RO mount açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_recovery_positive",
        "negativeName": "os_partitions_recovery_negative",
        "expectedMarker": "TURKOS/OS/K1540: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki header birbirini tutmaz karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki header birbirini tutmaz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1539"
    },
    {
      "id": "K1540",
      "number": 1540,
      "phase": 10,
      "module": "partitions",
      "feature": "partitions.recovery",
      "stage": "integration",
      "title": "Salt-okunur bölüm seçim politikası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Bozuk ana başlık sessiz onarılmaz.",
      "action": "Tek ürün Image'ında “Degraded RO mount açık raporlanır” kabulünü koştur. scripts/os-acceptance/partitions.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bozuk ana başlık sessiz onarılmaz",
      "source": {
        "target": "kernel/src/runtime/partitions.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_partitions_recovery"
      },
      "dependencies": [
        "K1539"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Primary bozuk backup geçerli",
      "counterexample": "İki header birbirini tutmaz",
      "guestAcceptance": "Degraded RO mount açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/partitions.rs",
        "harness": "scripts/os-acceptance/partitions.mjs",
        "positiveName": "os_partitions_recovery_positive",
        "negativeName": "os_partitions_recovery_negative",
        "expectedMarker": "TURKOS/OS/K1540: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Degraded RO mount açık raporlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki header birbirini tutmaz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1540"
    },
    {
      "id": "K1541",
      "number": 1541,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.components",
      "stage": "contract",
      "title": "Yol bileşeni sınırları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: UTF8 uzunluk ve nokta çözümü bounded olur.",
      "action": "“Yol bileşeni sınırları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: UTF8 uzunluk ve nokta çözümü bounded olur. “Mutlak göreli Türkçe yol” kabulü ile “Bozuk UTF8 veya çok derin yol” reddini aynı sözleşmeye bağla.",
      "invariant": "UTF8 uzunluk ve nokta çözümü bounded olur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_components"
      },
      "dependencies": [
        "K1540"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Mutlak göreli Türkçe yol",
      "counterexample": "Bozuk UTF8 veya çok derin yol",
      "guestAcceptance": "Hata sonrası CWD değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_components_positive",
        "negativeName": "os_vfs_paths_components_negative",
        "expectedMarker": "TURKOS/OS/K1545: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu UTF8 uzunluk ve nokta çözümü bounded olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk UTF8 veya çok derin yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1541"
    },
    {
      "id": "K1542",
      "number": 1542,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.components",
      "stage": "implementation",
      "title": "Yol bileşeni sınırları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: UTF8 uzunluk ve nokta çözümü bounded olur.",
      "action": "kernel/src/runtime/vfs_paths.rs hedefinde os_vfs_paths_components yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "UTF8 uzunluk ve nokta çözümü bounded olur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_components"
      },
      "dependencies": [
        "K1541"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Mutlak göreli Türkçe yol",
      "counterexample": "Bozuk UTF8 veya çok derin yol",
      "guestAcceptance": "Hata sonrası CWD değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_components_positive",
        "negativeName": "os_vfs_paths_components_negative",
        "expectedMarker": "TURKOS/OS/K1545: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Mutlak göreli Türkçe yol ile Bozuk UTF8 veya çok derin yol ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk UTF8 veya çok derin yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1542"
    },
    {
      "id": "K1543",
      "number": 1543,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.components",
      "stage": "positive",
      "title": "Yol bileşeni sınırları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: UTF8 uzunluk ve nokta çözümü bounded olur.",
      "action": "os_vfs_paths_components_positive testini oluştur: “Mutlak göreli Türkçe yol”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "UTF8 uzunluk ve nokta çözümü bounded olur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_components"
      },
      "dependencies": [
        "K1542"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Mutlak göreli Türkçe yol",
      "counterexample": "Bozuk UTF8 veya çok derin yol",
      "guestAcceptance": "Hata sonrası CWD değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_components_positive",
        "negativeName": "os_vfs_paths_components_negative",
        "expectedMarker": "TURKOS/OS/K1545: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Mutlak göreli Türkçe yol girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk UTF8 veya çok derin yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1543"
    },
    {
      "id": "K1544",
      "number": 1544,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.components",
      "stage": "negative",
      "title": "Yol bileşeni sınırları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: UTF8 uzunluk ve nokta çözümü bounded olur.",
      "action": "os_vfs_paths_components_negative testini oluştur: “Bozuk UTF8 veya çok derin yol”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "UTF8 uzunluk ve nokta çözümü bounded olur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_components"
      },
      "dependencies": [
        "K1543"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Mutlak göreli Türkçe yol",
      "counterexample": "Bozuk UTF8 veya çok derin yol",
      "guestAcceptance": "Hata sonrası CWD değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_components_positive",
        "negativeName": "os_vfs_paths_components_negative",
        "expectedMarker": "TURKOS/OS/K1545: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk UTF8 veya çok derin yol karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk UTF8 veya çok derin yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1544"
    },
    {
      "id": "K1545",
      "number": 1545,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.components",
      "stage": "integration",
      "title": "Yol bileşeni sınırları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: UTF8 uzunluk ve nokta çözümü bounded olur.",
      "action": "Tek ürün Image'ında “Hata sonrası CWD değişmez” kabulünü koştur. scripts/os-acceptance/vfs_paths.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "UTF8 uzunluk ve nokta çözümü bounded olur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_components"
      },
      "dependencies": [
        "K1544"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Mutlak göreli Türkçe yol",
      "counterexample": "Bozuk UTF8 veya çok derin yol",
      "guestAcceptance": "Hata sonrası CWD değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_components_positive",
        "negativeName": "os_vfs_paths_components_negative",
        "expectedMarker": "TURKOS/OS/K1545: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hata sonrası CWD değişmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk UTF8 veya çok derin yol” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1545"
    },
    {
      "id": "K1546",
      "number": 1546,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.mount_cross",
      "stage": "contract",
      "title": "Mount geçişi ve kök sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Dotdot process kökünün üstüne çıkmaz.",
      "action": "“Mount geçişi ve kök sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Dotdot process kökünün üstüne çıkmaz. “İki mount ve alt dizin” kabulü ile “Dotdot ile sandbox dışına geçiş” reddini aynı sözleşmeye bağla.",
      "invariant": "Dotdot process kökünün üstüne çıkmaz",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_mount_cross"
      },
      "dependencies": [
        "K1545"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki mount ve alt dizin",
      "counterexample": "Dotdot ile sandbox dışına geçiş",
      "guestAcceptance": "İzinli namespace içinde sonuç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_mount_cross_positive",
        "negativeName": "os_vfs_paths_mount_cross_negative",
        "expectedMarker": "TURKOS/OS/K1550: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Dotdot process kökünün üstüne çıkmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Dotdot ile sandbox dışına geçiş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1546"
    },
    {
      "id": "K1547",
      "number": 1547,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.mount_cross",
      "stage": "implementation",
      "title": "Mount geçişi ve kök sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Dotdot process kökünün üstüne çıkmaz.",
      "action": "kernel/src/runtime/vfs_paths.rs hedefinde os_vfs_paths_mount_cross yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Dotdot process kökünün üstüne çıkmaz",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_mount_cross"
      },
      "dependencies": [
        "K1546"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki mount ve alt dizin",
      "counterexample": "Dotdot ile sandbox dışına geçiş",
      "guestAcceptance": "İzinli namespace içinde sonuç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_mount_cross_positive",
        "negativeName": "os_vfs_paths_mount_cross_negative",
        "expectedMarker": "TURKOS/OS/K1550: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki mount ve alt dizin ile Dotdot ile sandbox dışına geçiş ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Dotdot ile sandbox dışına geçiş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1547"
    },
    {
      "id": "K1548",
      "number": 1548,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.mount_cross",
      "stage": "positive",
      "title": "Mount geçişi ve kök sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Dotdot process kökünün üstüne çıkmaz.",
      "action": "os_vfs_paths_mount_cross_positive testini oluştur: “İki mount ve alt dizin”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Dotdot process kökünün üstüne çıkmaz",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_mount_cross"
      },
      "dependencies": [
        "K1547"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki mount ve alt dizin",
      "counterexample": "Dotdot ile sandbox dışına geçiş",
      "guestAcceptance": "İzinli namespace içinde sonuç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_mount_cross_positive",
        "negativeName": "os_vfs_paths_mount_cross_negative",
        "expectedMarker": "TURKOS/OS/K1550: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki mount ve alt dizin girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Dotdot ile sandbox dışına geçiş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1548"
    },
    {
      "id": "K1549",
      "number": 1549,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.mount_cross",
      "stage": "negative",
      "title": "Mount geçişi ve kök sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Dotdot process kökünün üstüne çıkmaz.",
      "action": "os_vfs_paths_mount_cross_negative testini oluştur: “Dotdot ile sandbox dışına geçiş”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Dotdot process kökünün üstüne çıkmaz",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_mount_cross"
      },
      "dependencies": [
        "K1548"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki mount ve alt dizin",
      "counterexample": "Dotdot ile sandbox dışına geçiş",
      "guestAcceptance": "İzinli namespace içinde sonuç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_mount_cross_positive",
        "negativeName": "os_vfs_paths_mount_cross_negative",
        "expectedMarker": "TURKOS/OS/K1550: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dotdot ile sandbox dışına geçiş karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Dotdot ile sandbox dışına geçiş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1549"
    },
    {
      "id": "K1550",
      "number": 1550,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.mount_cross",
      "stage": "integration",
      "title": "Mount geçişi ve kök sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Dotdot process kökünün üstüne çıkmaz.",
      "action": "Tek ürün Image'ında “İzinli namespace içinde sonuç” kabulünü koştur. scripts/os-acceptance/vfs_paths.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Dotdot process kökünün üstüne çıkmaz",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_mount_cross"
      },
      "dependencies": [
        "K1549"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki mount ve alt dizin",
      "counterexample": "Dotdot ile sandbox dışına geçiş",
      "guestAcceptance": "İzinli namespace içinde sonuç",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_mount_cross_positive",
        "negativeName": "os_vfs_paths_mount_cross_negative",
        "expectedMarker": "TURKOS/OS/K1550: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İzinli namespace içinde sonuç; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Dotdot ile sandbox dışına geçiş” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1550"
    },
    {
      "id": "K1551",
      "number": 1551,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.lookup",
      "stage": "contract",
      "title": "Dentry inode lookup ömrü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Lookup tam mount nesline bağlıdır.",
      "action": "“Dentry inode lookup ömrü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Lookup tam mount nesline bağlıdır. “Aynı ad iki mountta” kabulü ile “Unmount edilmiş eski dentry” reddini aynı sözleşmeye bağla.",
      "invariant": "Lookup tam mount nesline bağlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_lookup"
      },
      "dependencies": [
        "K1550"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Aynı ad iki mountta",
      "counterexample": "Unmount edilmiş eski dentry",
      "guestAcceptance": "Eski nesil stale döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_lookup_positive",
        "negativeName": "os_vfs_paths_lookup_negative",
        "expectedMarker": "TURKOS/OS/K1555: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Lookup tam mount nesline bağlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Unmount edilmiş eski dentry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1551"
    },
    {
      "id": "K1552",
      "number": 1552,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.lookup",
      "stage": "implementation",
      "title": "Dentry inode lookup ömrü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Lookup tam mount nesline bağlıdır.",
      "action": "kernel/src/runtime/vfs_paths.rs hedefinde os_vfs_paths_lookup yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Lookup tam mount nesline bağlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_lookup"
      },
      "dependencies": [
        "K1551"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Aynı ad iki mountta",
      "counterexample": "Unmount edilmiş eski dentry",
      "guestAcceptance": "Eski nesil stale döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_lookup_positive",
        "negativeName": "os_vfs_paths_lookup_negative",
        "expectedMarker": "TURKOS/OS/K1555: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı ad iki mountta ile Unmount edilmiş eski dentry ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Unmount edilmiş eski dentry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1552"
    },
    {
      "id": "K1553",
      "number": 1553,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.lookup",
      "stage": "positive",
      "title": "Dentry inode lookup ömrü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Lookup tam mount nesline bağlıdır.",
      "action": "os_vfs_paths_lookup_positive testini oluştur: “Aynı ad iki mountta”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Lookup tam mount nesline bağlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_lookup"
      },
      "dependencies": [
        "K1552"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Aynı ad iki mountta",
      "counterexample": "Unmount edilmiş eski dentry",
      "guestAcceptance": "Eski nesil stale döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_lookup_positive",
        "negativeName": "os_vfs_paths_lookup_negative",
        "expectedMarker": "TURKOS/OS/K1555: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı ad iki mountta girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Unmount edilmiş eski dentry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1553"
    },
    {
      "id": "K1554",
      "number": 1554,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.lookup",
      "stage": "negative",
      "title": "Dentry inode lookup ömrü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Lookup tam mount nesline bağlıdır.",
      "action": "os_vfs_paths_lookup_negative testini oluştur: “Unmount edilmiş eski dentry”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Lookup tam mount nesline bağlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_lookup"
      },
      "dependencies": [
        "K1553"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Aynı ad iki mountta",
      "counterexample": "Unmount edilmiş eski dentry",
      "guestAcceptance": "Eski nesil stale döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_lookup_positive",
        "negativeName": "os_vfs_paths_lookup_negative",
        "expectedMarker": "TURKOS/OS/K1555: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Unmount edilmiş eski dentry karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Unmount edilmiş eski dentry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1554"
    },
    {
      "id": "K1555",
      "number": 1555,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.lookup",
      "stage": "integration",
      "title": "Dentry inode lookup ömrü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Lookup tam mount nesline bağlıdır.",
      "action": "Tek ürün Image'ında “Eski nesil stale döndürür” kabulünü koştur. scripts/os-acceptance/vfs_paths.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Lookup tam mount nesline bağlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_lookup"
      },
      "dependencies": [
        "K1554"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Aynı ad iki mountta",
      "counterexample": "Unmount edilmiş eski dentry",
      "guestAcceptance": "Eski nesil stale döndürür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_lookup_positive",
        "negativeName": "os_vfs_paths_lookup_negative",
        "expectedMarker": "TURKOS/OS/K1555: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski nesil stale döndürür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Unmount edilmiş eski dentry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1555"
    },
    {
      "id": "K1556",
      "number": 1556,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.symlinks",
      "stage": "contract",
      "title": "Sınırlı symlink çözümleme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Hop limiti ve kök sınırı korunur.",
      "action": "“Sınırlı symlink çözümleme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hop limiti ve kök sınırı korunur. “İki symlink sonra dosya” kabulü ile “Öz döngü veya 41 hop” reddini aynı sözleşmeye bağla.",
      "invariant": "Hop limiti ve kök sınırı korunur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_symlinks"
      },
      "dependencies": [
        "K1555"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki symlink sonra dosya",
      "counterexample": "Öz döngü veya 41 hop",
      "guestAcceptance": "ELOOP ile bounded sonlanma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_symlinks_positive",
        "negativeName": "os_vfs_paths_symlinks_negative",
        "expectedMarker": "TURKOS/OS/K1560: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hop limiti ve kök sınırı korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Öz döngü veya 41 hop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1556"
    },
    {
      "id": "K1557",
      "number": 1557,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.symlinks",
      "stage": "implementation",
      "title": "Sınırlı symlink çözümleme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Hop limiti ve kök sınırı korunur.",
      "action": "kernel/src/runtime/vfs_paths.rs hedefinde os_vfs_paths_symlinks yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hop limiti ve kök sınırı korunur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_symlinks"
      },
      "dependencies": [
        "K1556"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki symlink sonra dosya",
      "counterexample": "Öz döngü veya 41 hop",
      "guestAcceptance": "ELOOP ile bounded sonlanma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_symlinks_positive",
        "negativeName": "os_vfs_paths_symlinks_negative",
        "expectedMarker": "TURKOS/OS/K1560: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki symlink sonra dosya ile Öz döngü veya 41 hop ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Öz döngü veya 41 hop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1557"
    },
    {
      "id": "K1558",
      "number": 1558,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.symlinks",
      "stage": "positive",
      "title": "Sınırlı symlink çözümleme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Hop limiti ve kök sınırı korunur.",
      "action": "os_vfs_paths_symlinks_positive testini oluştur: “İki symlink sonra dosya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hop limiti ve kök sınırı korunur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_symlinks"
      },
      "dependencies": [
        "K1557"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki symlink sonra dosya",
      "counterexample": "Öz döngü veya 41 hop",
      "guestAcceptance": "ELOOP ile bounded sonlanma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_symlinks_positive",
        "negativeName": "os_vfs_paths_symlinks_negative",
        "expectedMarker": "TURKOS/OS/K1560: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki symlink sonra dosya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Öz döngü veya 41 hop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1558"
    },
    {
      "id": "K1559",
      "number": 1559,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.symlinks",
      "stage": "negative",
      "title": "Sınırlı symlink çözümleme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Hop limiti ve kök sınırı korunur.",
      "action": "os_vfs_paths_symlinks_negative testini oluştur: “Öz döngü veya 41 hop”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hop limiti ve kök sınırı korunur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_symlinks"
      },
      "dependencies": [
        "K1558"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki symlink sonra dosya",
      "counterexample": "Öz döngü veya 41 hop",
      "guestAcceptance": "ELOOP ile bounded sonlanma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_symlinks_positive",
        "negativeName": "os_vfs_paths_symlinks_negative",
        "expectedMarker": "TURKOS/OS/K1560: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Öz döngü veya 41 hop karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Öz döngü veya 41 hop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1559"
    },
    {
      "id": "K1560",
      "number": 1560,
      "phase": 10,
      "module": "vfs_paths",
      "feature": "vfs_paths.symlinks",
      "stage": "integration",
      "title": "Sınırlı symlink çözümleme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Hop limiti ve kök sınırı korunur.",
      "action": "Tek ürün Image'ında “ELOOP ile bounded sonlanma” kabulünü koştur. scripts/os-acceptance/vfs_paths.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hop limiti ve kök sınırı korunur",
      "source": {
        "target": "kernel/src/runtime/vfs_paths.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_vfs_paths_symlinks"
      },
      "dependencies": [
        "K1559"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki symlink sonra dosya",
      "counterexample": "Öz döngü veya 41 hop",
      "guestAcceptance": "ELOOP ile bounded sonlanma",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_paths.rs",
        "harness": "scripts/os-acceptance/vfs_paths.mjs",
        "positiveName": "os_vfs_paths_symlinks_positive",
        "negativeName": "os_vfs_paths_symlinks_negative",
        "expectedMarker": "TURKOS/OS/K1560: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ELOOP ile bounded sonlanma; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Öz döngü veya 41 hop” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1560"
    },
    {
      "id": "K1561",
      "number": 1561,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.open",
      "stage": "contract",
      "title": "Open mode ve erişim hakkı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: RO mount yazılabilir open vermez.",
      "action": "“Open mode ve erişim hakkı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: RO mount yazılabilir open vermez. “İki bağımsız RO open” kabulü ile “RO mountta create write” reddini aynı sözleşmeye bağla.",
      "invariant": "RO mount yazılabilir open vermez",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_open"
      },
      "dependencies": [
        "K1560"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki bağımsız RO open",
      "counterexample": "RO mountta create write",
      "guestAcceptance": "EROFS ve değişmeyen disk",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_open_positive",
        "negativeName": "os_vfs_files_open_negative",
        "expectedMarker": "TURKOS/OS/K1565: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu RO mount yazılabilir open vermez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“RO mountta create write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1561"
    },
    {
      "id": "K1562",
      "number": 1562,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.open",
      "stage": "implementation",
      "title": "Open mode ve erişim hakkı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: RO mount yazılabilir open vermez.",
      "action": "kernel/src/runtime/vfs_files.rs hedefinde os_vfs_files_open yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "RO mount yazılabilir open vermez",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_open"
      },
      "dependencies": [
        "K1561"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki bağımsız RO open",
      "counterexample": "RO mountta create write",
      "guestAcceptance": "EROFS ve değişmeyen disk",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_open_positive",
        "negativeName": "os_vfs_files_open_negative",
        "expectedMarker": "TURKOS/OS/K1565: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki bağımsız RO open ile RO mountta create write ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“RO mountta create write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1562"
    },
    {
      "id": "K1563",
      "number": 1563,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.open",
      "stage": "positive",
      "title": "Open mode ve erişim hakkı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: RO mount yazılabilir open vermez.",
      "action": "os_vfs_files_open_positive testini oluştur: “İki bağımsız RO open”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "RO mount yazılabilir open vermez",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_open"
      },
      "dependencies": [
        "K1562"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki bağımsız RO open",
      "counterexample": "RO mountta create write",
      "guestAcceptance": "EROFS ve değişmeyen disk",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_open_positive",
        "negativeName": "os_vfs_files_open_negative",
        "expectedMarker": "TURKOS/OS/K1565: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki bağımsız RO open girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“RO mountta create write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1563"
    },
    {
      "id": "K1564",
      "number": 1564,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.open",
      "stage": "negative",
      "title": "Open mode ve erişim hakkı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: RO mount yazılabilir open vermez.",
      "action": "os_vfs_files_open_negative testini oluştur: “RO mountta create write”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "RO mount yazılabilir open vermez",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_open"
      },
      "dependencies": [
        "K1563"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki bağımsız RO open",
      "counterexample": "RO mountta create write",
      "guestAcceptance": "EROFS ve değişmeyen disk",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_open_positive",
        "negativeName": "os_vfs_files_open_negative",
        "expectedMarker": "TURKOS/OS/K1565: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "RO mountta create write karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“RO mountta create write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1564"
    },
    {
      "id": "K1565",
      "number": 1565,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.open",
      "stage": "integration",
      "title": "Open mode ve erişim hakkı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: RO mount yazılabilir open vermez.",
      "action": "Tek ürün Image'ında “EROFS ve değişmeyen disk” kabulünü koştur. scripts/os-acceptance/vfs_files.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "RO mount yazılabilir open vermez",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_open"
      },
      "dependencies": [
        "K1564"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki bağımsız RO open",
      "counterexample": "RO mountta create write",
      "guestAcceptance": "EROFS ve değişmeyen disk",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_open_positive",
        "negativeName": "os_vfs_files_open_negative",
        "expectedMarker": "TURKOS/OS/K1565: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EROFS ve değişmeyen disk; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“RO mountta create write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1565"
    },
    {
      "id": "K1566",
      "number": 1566,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.offsets",
      "stage": "contract",
      "title": "Dosya ofseti ve seek · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ofset yalnız başarılı I/O kadar ilerler.",
      "action": "“Dosya ofseti ve seek” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ofset yalnız başarılı I/O kadar ilerler. “Kısa read sonra seek” kabulü ile “Negatif veya taşan seek” reddini aynı sözleşmeye bağla.",
      "invariant": "Ofset yalnız başarılı I/O kadar ilerler",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_offsets"
      },
      "dependencies": [
        "K1565"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Kısa read sonra seek",
      "counterexample": "Negatif veya taşan seek",
      "guestAcceptance": "Diğer FD ofseti bağımsız kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_offsets_positive",
        "negativeName": "os_vfs_files_offsets_negative",
        "expectedMarker": "TURKOS/OS/K1570: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ofset yalnız başarılı I/O kadar ilerler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Negatif veya taşan seek” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1566"
    },
    {
      "id": "K1567",
      "number": 1567,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.offsets",
      "stage": "implementation",
      "title": "Dosya ofseti ve seek · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ofset yalnız başarılı I/O kadar ilerler.",
      "action": "kernel/src/runtime/vfs_files.rs hedefinde os_vfs_files_offsets yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ofset yalnız başarılı I/O kadar ilerler",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_offsets"
      },
      "dependencies": [
        "K1566"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Kısa read sonra seek",
      "counterexample": "Negatif veya taşan seek",
      "guestAcceptance": "Diğer FD ofseti bağımsız kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_offsets_positive",
        "negativeName": "os_vfs_files_offsets_negative",
        "expectedMarker": "TURKOS/OS/K1570: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kısa read sonra seek ile Negatif veya taşan seek ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Negatif veya taşan seek” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1567"
    },
    {
      "id": "K1568",
      "number": 1568,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.offsets",
      "stage": "positive",
      "title": "Dosya ofseti ve seek · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ofset yalnız başarılı I/O kadar ilerler.",
      "action": "os_vfs_files_offsets_positive testini oluştur: “Kısa read sonra seek”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ofset yalnız başarılı I/O kadar ilerler",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_offsets"
      },
      "dependencies": [
        "K1567"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Kısa read sonra seek",
      "counterexample": "Negatif veya taşan seek",
      "guestAcceptance": "Diğer FD ofseti bağımsız kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_offsets_positive",
        "negativeName": "os_vfs_files_offsets_negative",
        "expectedMarker": "TURKOS/OS/K1570: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kısa read sonra seek girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Negatif veya taşan seek” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1568"
    },
    {
      "id": "K1569",
      "number": 1569,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.offsets",
      "stage": "negative",
      "title": "Dosya ofseti ve seek · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ofset yalnız başarılı I/O kadar ilerler.",
      "action": "os_vfs_files_offsets_negative testini oluştur: “Negatif veya taşan seek”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ofset yalnız başarılı I/O kadar ilerler",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_offsets"
      },
      "dependencies": [
        "K1568"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Kısa read sonra seek",
      "counterexample": "Negatif veya taşan seek",
      "guestAcceptance": "Diğer FD ofseti bağımsız kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_offsets_positive",
        "negativeName": "os_vfs_files_offsets_negative",
        "expectedMarker": "TURKOS/OS/K1570: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Negatif veya taşan seek karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Negatif veya taşan seek” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1569"
    },
    {
      "id": "K1570",
      "number": 1570,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.offsets",
      "stage": "integration",
      "title": "Dosya ofseti ve seek · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ofset yalnız başarılı I/O kadar ilerler.",
      "action": "Tek ürün Image'ında “Diğer FD ofseti bağımsız kalır” kabulünü koştur. scripts/os-acceptance/vfs_files.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ofset yalnız başarılı I/O kadar ilerler",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_offsets"
      },
      "dependencies": [
        "K1569"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Kısa read sonra seek",
      "counterexample": "Negatif veya taşan seek",
      "guestAcceptance": "Diğer FD ofseti bağımsız kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_offsets_positive",
        "negativeName": "os_vfs_files_offsets_negative",
        "expectedMarker": "TURKOS/OS/K1570: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Diğer FD ofseti bağımsız kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Negatif veya taşan seek” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1570"
    },
    {
      "id": "K1571",
      "number": 1571,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.stat",
      "stage": "contract",
      "title": "Stat ve dizin metadata · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Boy tür hak ve kimlik tutarlı olur.",
      "action": "“Stat ve dizin metadata” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Boy tür hak ve kimlik tutarlı olur. “Boş ve 513 bayt dosya” kabulü ile “Bozuk inode boyu” reddini aynı sözleşmeye bağla.",
      "invariant": "Boy tür hak ve kimlik tutarlı olur",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_stat"
      },
      "dependencies": [
        "K1570"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş ve 513 bayt dosya",
      "counterexample": "Bozuk inode boyu",
      "guestAcceptance": "Kullanıcı doğru stat alanlarını alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_stat_positive",
        "negativeName": "os_vfs_files_stat_negative",
        "expectedMarker": "TURKOS/OS/K1575: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Boy tür hak ve kimlik tutarlı olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk inode boyu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1571"
    },
    {
      "id": "K1572",
      "number": 1572,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.stat",
      "stage": "implementation",
      "title": "Stat ve dizin metadata · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Boy tür hak ve kimlik tutarlı olur.",
      "action": "kernel/src/runtime/vfs_files.rs hedefinde os_vfs_files_stat yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Boy tür hak ve kimlik tutarlı olur",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_stat"
      },
      "dependencies": [
        "K1571"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş ve 513 bayt dosya",
      "counterexample": "Bozuk inode boyu",
      "guestAcceptance": "Kullanıcı doğru stat alanlarını alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_stat_positive",
        "negativeName": "os_vfs_files_stat_negative",
        "expectedMarker": "TURKOS/OS/K1575: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş ve 513 bayt dosya ile Bozuk inode boyu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk inode boyu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1572"
    },
    {
      "id": "K1573",
      "number": 1573,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.stat",
      "stage": "positive",
      "title": "Stat ve dizin metadata · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Boy tür hak ve kimlik tutarlı olur.",
      "action": "os_vfs_files_stat_positive testini oluştur: “Boş ve 513 bayt dosya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Boy tür hak ve kimlik tutarlı olur",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_stat"
      },
      "dependencies": [
        "K1572"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş ve 513 bayt dosya",
      "counterexample": "Bozuk inode boyu",
      "guestAcceptance": "Kullanıcı doğru stat alanlarını alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_stat_positive",
        "negativeName": "os_vfs_files_stat_negative",
        "expectedMarker": "TURKOS/OS/K1575: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş ve 513 bayt dosya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk inode boyu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1573"
    },
    {
      "id": "K1574",
      "number": 1574,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.stat",
      "stage": "negative",
      "title": "Stat ve dizin metadata · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Boy tür hak ve kimlik tutarlı olur.",
      "action": "os_vfs_files_stat_negative testini oluştur: “Bozuk inode boyu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Boy tür hak ve kimlik tutarlı olur",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_stat"
      },
      "dependencies": [
        "K1573"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş ve 513 bayt dosya",
      "counterexample": "Bozuk inode boyu",
      "guestAcceptance": "Kullanıcı doğru stat alanlarını alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_stat_positive",
        "negativeName": "os_vfs_files_stat_negative",
        "expectedMarker": "TURKOS/OS/K1575: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk inode boyu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk inode boyu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1574"
    },
    {
      "id": "K1575",
      "number": 1575,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.stat",
      "stage": "integration",
      "title": "Stat ve dizin metadata · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Boy tür hak ve kimlik tutarlı olur.",
      "action": "Tek ürün Image'ında “Kullanıcı doğru stat alanlarını alır” kabulünü koştur. scripts/os-acceptance/vfs_files.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Boy tür hak ve kimlik tutarlı olur",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_stat"
      },
      "dependencies": [
        "K1574"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş ve 513 bayt dosya",
      "counterexample": "Bozuk inode boyu",
      "guestAcceptance": "Kullanıcı doğru stat alanlarını alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_stat_positive",
        "negativeName": "os_vfs_files_stat_negative",
        "expectedMarker": "TURKOS/OS/K1575: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kullanıcı doğru stat alanlarını alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk inode boyu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1575"
    },
    {
      "id": "K1576",
      "number": 1576,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.duplicates",
      "stage": "contract",
      "title": "Duplicate FD ve close ilişkisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Paylaşılan open description ofseti tanımlıdır.",
      "action": "“Duplicate FD ve close ilişkisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Paylaşılan open description ofseti tanımlıdır. “Dup sonra ardışık read” kabulü ile “Son close sırasında read” reddini aynı sözleşmeye bağla.",
      "invariant": "Paylaşılan open description ofseti tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_duplicates"
      },
      "dependencies": [
        "K1575"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Dup sonra ardışık read",
      "counterexample": "Son close sırasında read",
      "guestAcceptance": "Ömür bitene kadar nesne tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_duplicates_positive",
        "negativeName": "os_vfs_files_duplicates_negative",
        "expectedMarker": "TURKOS/OS/K1580: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Paylaşılan open description ofseti tanımlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Son close sırasında read” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1576"
    },
    {
      "id": "K1577",
      "number": 1577,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.duplicates",
      "stage": "implementation",
      "title": "Duplicate FD ve close ilişkisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Paylaşılan open description ofseti tanımlıdır.",
      "action": "kernel/src/runtime/vfs_files.rs hedefinde os_vfs_files_duplicates yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Paylaşılan open description ofseti tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_duplicates"
      },
      "dependencies": [
        "K1576"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Dup sonra ardışık read",
      "counterexample": "Son close sırasında read",
      "guestAcceptance": "Ömür bitene kadar nesne tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_duplicates_positive",
        "negativeName": "os_vfs_files_duplicates_negative",
        "expectedMarker": "TURKOS/OS/K1580: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dup sonra ardışık read ile Son close sırasında read ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Son close sırasında read” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1577"
    },
    {
      "id": "K1578",
      "number": 1578,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.duplicates",
      "stage": "positive",
      "title": "Duplicate FD ve close ilişkisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Paylaşılan open description ofseti tanımlıdır.",
      "action": "os_vfs_files_duplicates_positive testini oluştur: “Dup sonra ardışık read”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Paylaşılan open description ofseti tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_duplicates"
      },
      "dependencies": [
        "K1577"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Dup sonra ardışık read",
      "counterexample": "Son close sırasında read",
      "guestAcceptance": "Ömür bitene kadar nesne tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_duplicates_positive",
        "negativeName": "os_vfs_files_duplicates_negative",
        "expectedMarker": "TURKOS/OS/K1580: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dup sonra ardışık read girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Son close sırasında read” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1578"
    },
    {
      "id": "K1579",
      "number": 1579,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.duplicates",
      "stage": "negative",
      "title": "Duplicate FD ve close ilişkisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Paylaşılan open description ofseti tanımlıdır.",
      "action": "os_vfs_files_duplicates_negative testini oluştur: “Son close sırasında read”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Paylaşılan open description ofseti tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_duplicates"
      },
      "dependencies": [
        "K1578"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Dup sonra ardışık read",
      "counterexample": "Son close sırasında read",
      "guestAcceptance": "Ömür bitene kadar nesne tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_duplicates_positive",
        "negativeName": "os_vfs_files_duplicates_negative",
        "expectedMarker": "TURKOS/OS/K1580: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son close sırasında read karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Son close sırasında read” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1579"
    },
    {
      "id": "K1580",
      "number": 1580,
      "phase": 10,
      "module": "vfs_files",
      "feature": "vfs_files.duplicates",
      "stage": "integration",
      "title": "Duplicate FD ve close ilişkisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Paylaşılan open description ofseti tanımlıdır.",
      "action": "Tek ürün Image'ında “Ömür bitene kadar nesne tutulur” kabulünü koştur. scripts/os-acceptance/vfs_files.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Paylaşılan open description ofseti tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/vfs_files.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_vfs_files_duplicates"
      },
      "dependencies": [
        "K1579"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Dup sonra ardışık read",
      "counterexample": "Son close sırasında read",
      "guestAcceptance": "Ömür bitene kadar nesne tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/vfs_files.rs",
        "harness": "scripts/os-acceptance/vfs_files.mjs",
        "positiveName": "os_vfs_files_duplicates_positive",
        "negativeName": "os_vfs_files_duplicates_negative",
        "expectedMarker": "TURKOS/OS/K1580: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ömür bitene kadar nesne tutulur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Son close sırasında read” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1580"
    },
    {
      "id": "K1581",
      "number": 1581,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.filesystem_trait",
      "stage": "contract",
      "title": "Dosya sistemi trait sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: VFS backend ayrımı I/O hatasını korur.",
      "action": "“Dosya sistemi trait sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: VFS backend ayrımı I/O hatasını korur. “Ramfs ve TurkFS RO” kabulü ile “Backend yanlış inode türü” reddini aynı sözleşmeye bağla.",
      "invariant": "VFS backend ayrımı I/O hatasını korur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_filesystem_trait"
      },
      "dependencies": [
        "K1580"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Ramfs ve TurkFS RO",
      "counterexample": "Backend yanlış inode türü",
      "guestAcceptance": "Aynı VFS araçları iki mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_filesystem_trait_positive",
        "negativeName": "os_mount_cache_filesystem_trait_negative",
        "expectedMarker": "TURKOS/OS/K1585: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu VFS backend ayrımı I/O hatasını korur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Backend yanlış inode türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1581"
    },
    {
      "id": "K1582",
      "number": 1582,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.filesystem_trait",
      "stage": "implementation",
      "title": "Dosya sistemi trait sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: VFS backend ayrımı I/O hatasını korur.",
      "action": "kernel/src/runtime/mount_cache.rs hedefinde os_mount_cache_filesystem_trait yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "VFS backend ayrımı I/O hatasını korur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_filesystem_trait"
      },
      "dependencies": [
        "K1581"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Ramfs ve TurkFS RO",
      "counterexample": "Backend yanlış inode türü",
      "guestAcceptance": "Aynı VFS araçları iki mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_filesystem_trait_positive",
        "negativeName": "os_mount_cache_filesystem_trait_negative",
        "expectedMarker": "TURKOS/OS/K1585: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Ramfs ve TurkFS RO ile Backend yanlış inode türü ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Backend yanlış inode türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1582"
    },
    {
      "id": "K1583",
      "number": 1583,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.filesystem_trait",
      "stage": "positive",
      "title": "Dosya sistemi trait sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: VFS backend ayrımı I/O hatasını korur.",
      "action": "os_mount_cache_filesystem_trait_positive testini oluştur: “Ramfs ve TurkFS RO”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "VFS backend ayrımı I/O hatasını korur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_filesystem_trait"
      },
      "dependencies": [
        "K1582"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Ramfs ve TurkFS RO",
      "counterexample": "Backend yanlış inode türü",
      "guestAcceptance": "Aynı VFS araçları iki mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_filesystem_trait_positive",
        "negativeName": "os_mount_cache_filesystem_trait_negative",
        "expectedMarker": "TURKOS/OS/K1585: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Ramfs ve TurkFS RO girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Backend yanlış inode türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1583"
    },
    {
      "id": "K1584",
      "number": 1584,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.filesystem_trait",
      "stage": "negative",
      "title": "Dosya sistemi trait sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: VFS backend ayrımı I/O hatasını korur.",
      "action": "os_mount_cache_filesystem_trait_negative testini oluştur: “Backend yanlış inode türü”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "VFS backend ayrımı I/O hatasını korur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_filesystem_trait"
      },
      "dependencies": [
        "K1583"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Ramfs ve TurkFS RO",
      "counterexample": "Backend yanlış inode türü",
      "guestAcceptance": "Aynı VFS araçları iki mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_filesystem_trait_positive",
        "negativeName": "os_mount_cache_filesystem_trait_negative",
        "expectedMarker": "TURKOS/OS/K1585: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Backend yanlış inode türü karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Backend yanlış inode türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1584"
    },
    {
      "id": "K1585",
      "number": 1585,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.filesystem_trait",
      "stage": "integration",
      "title": "Dosya sistemi trait sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: VFS backend ayrımı I/O hatasını korur.",
      "action": "Tek ürün Image'ında “Aynı VFS araçları iki mountta” kabulünü koştur. scripts/os-acceptance/mount_cache.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "VFS backend ayrımı I/O hatasını korur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_filesystem_trait"
      },
      "dependencies": [
        "K1584"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Ramfs ve TurkFS RO",
      "counterexample": "Backend yanlış inode türü",
      "guestAcceptance": "Aynı VFS araçları iki mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_filesystem_trait_positive",
        "negativeName": "os_mount_cache_filesystem_trait_negative",
        "expectedMarker": "TURKOS/OS/K1585: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aynı VFS araçları iki mountta; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Backend yanlış inode türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1585"
    },
    {
      "id": "K1586",
      "number": 1586,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.ramfs",
      "stage": "contract",
      "title": "Geçici kullanıcı dosya sistemi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ramfs quota disk haklarını genişletmez.",
      "action": "“Geçici kullanıcı dosya sistemi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ramfs quota disk haklarını genişletmez. “Geçici küçük dosya” kabulü ile “Quota artı bir byte” reddini aynı sözleşmeye bağla.",
      "invariant": "Ramfs quota disk haklarını genişletmez",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_ramfs"
      },
      "dependencies": [
        "K1585"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Geçici küçük dosya",
      "counterexample": "Quota artı bir byte",
      "guestAcceptance": "ENOSPC sadece ilgili mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_ramfs_positive",
        "negativeName": "os_mount_cache_ramfs_negative",
        "expectedMarker": "TURKOS/OS/K1590: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ramfs quota disk haklarını genişletmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Quota artı bir byte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1586"
    },
    {
      "id": "K1587",
      "number": 1587,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.ramfs",
      "stage": "implementation",
      "title": "Geçici kullanıcı dosya sistemi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ramfs quota disk haklarını genişletmez.",
      "action": "kernel/src/runtime/mount_cache.rs hedefinde os_mount_cache_ramfs yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ramfs quota disk haklarını genişletmez",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_ramfs"
      },
      "dependencies": [
        "K1586"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Geçici küçük dosya",
      "counterexample": "Quota artı bir byte",
      "guestAcceptance": "ENOSPC sadece ilgili mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_ramfs_positive",
        "negativeName": "os_mount_cache_ramfs_negative",
        "expectedMarker": "TURKOS/OS/K1590: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçici küçük dosya ile Quota artı bir byte ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Quota artı bir byte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1587"
    },
    {
      "id": "K1588",
      "number": 1588,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.ramfs",
      "stage": "positive",
      "title": "Geçici kullanıcı dosya sistemi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ramfs quota disk haklarını genişletmez.",
      "action": "os_mount_cache_ramfs_positive testini oluştur: “Geçici küçük dosya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ramfs quota disk haklarını genişletmez",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_ramfs"
      },
      "dependencies": [
        "K1587"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Geçici küçük dosya",
      "counterexample": "Quota artı bir byte",
      "guestAcceptance": "ENOSPC sadece ilgili mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_ramfs_positive",
        "negativeName": "os_mount_cache_ramfs_negative",
        "expectedMarker": "TURKOS/OS/K1590: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçici küçük dosya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Quota artı bir byte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1588"
    },
    {
      "id": "K1589",
      "number": 1589,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.ramfs",
      "stage": "negative",
      "title": "Geçici kullanıcı dosya sistemi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ramfs quota disk haklarını genişletmez.",
      "action": "os_mount_cache_ramfs_negative testini oluştur: “Quota artı bir byte”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ramfs quota disk haklarını genişletmez",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_ramfs"
      },
      "dependencies": [
        "K1588"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Geçici küçük dosya",
      "counterexample": "Quota artı bir byte",
      "guestAcceptance": "ENOSPC sadece ilgili mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_ramfs_positive",
        "negativeName": "os_mount_cache_ramfs_negative",
        "expectedMarker": "TURKOS/OS/K1590: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Quota artı bir byte karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Quota artı bir byte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1589"
    },
    {
      "id": "K1590",
      "number": 1590,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.ramfs",
      "stage": "integration",
      "title": "Geçici kullanıcı dosya sistemi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Ramfs quota disk haklarını genişletmez.",
      "action": "Tek ürün Image'ında “ENOSPC sadece ilgili mountta” kabulünü koştur. scripts/os-acceptance/mount_cache.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ramfs quota disk haklarını genişletmez",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_ramfs"
      },
      "dependencies": [
        "K1589"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Geçici küçük dosya",
      "counterexample": "Quota artı bir byte",
      "guestAcceptance": "ENOSPC sadece ilgili mountta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_ramfs_positive",
        "negativeName": "os_mount_cache_ramfs_negative",
        "expectedMarker": "TURKOS/OS/K1590: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ENOSPC sadece ilgili mountta; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Quota artı bir byte” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1590"
    },
    {
      "id": "K1591",
      "number": 1591,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.read_cache",
      "stage": "contract",
      "title": "RO cache anahtar ve tahliye · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Anahtar device nesil LBA içerir.",
      "action": "“RO cache anahtar ve tahliye” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Anahtar device nesil LBA içerir. “İki diskte aynı LBA” kabulü ile “Eski aygıt cache girdisi” reddini aynı sözleşmeye bağla.",
      "invariant": "Anahtar device nesil LBA içerir",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_read_cache"
      },
      "dependencies": [
        "K1590"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki diskte aynı LBA",
      "counterexample": "Eski aygıt cache girdisi",
      "guestAcceptance": "Yeni disk eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_read_cache_positive",
        "negativeName": "os_mount_cache_read_cache_negative",
        "expectedMarker": "TURKOS/OS/K1595: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Anahtar device nesil LBA içerir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski aygıt cache girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1591"
    },
    {
      "id": "K1592",
      "number": 1592,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.read_cache",
      "stage": "implementation",
      "title": "RO cache anahtar ve tahliye · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Anahtar device nesil LBA içerir.",
      "action": "kernel/src/runtime/mount_cache.rs hedefinde os_mount_cache_read_cache yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Anahtar device nesil LBA içerir",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_read_cache"
      },
      "dependencies": [
        "K1591"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki diskte aynı LBA",
      "counterexample": "Eski aygıt cache girdisi",
      "guestAcceptance": "Yeni disk eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_read_cache_positive",
        "negativeName": "os_mount_cache_read_cache_negative",
        "expectedMarker": "TURKOS/OS/K1595: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki diskte aynı LBA ile Eski aygıt cache girdisi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski aygıt cache girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1592"
    },
    {
      "id": "K1593",
      "number": 1593,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.read_cache",
      "stage": "positive",
      "title": "RO cache anahtar ve tahliye · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Anahtar device nesil LBA içerir.",
      "action": "os_mount_cache_read_cache_positive testini oluştur: “İki diskte aynı LBA”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Anahtar device nesil LBA içerir",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_read_cache"
      },
      "dependencies": [
        "K1592"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki diskte aynı LBA",
      "counterexample": "Eski aygıt cache girdisi",
      "guestAcceptance": "Yeni disk eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_read_cache_positive",
        "negativeName": "os_mount_cache_read_cache_negative",
        "expectedMarker": "TURKOS/OS/K1595: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki diskte aynı LBA girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski aygıt cache girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1593"
    },
    {
      "id": "K1594",
      "number": 1594,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.read_cache",
      "stage": "negative",
      "title": "RO cache anahtar ve tahliye · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Anahtar device nesil LBA içerir.",
      "action": "os_mount_cache_read_cache_negative testini oluştur: “Eski aygıt cache girdisi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Anahtar device nesil LBA içerir",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_read_cache"
      },
      "dependencies": [
        "K1593"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki diskte aynı LBA",
      "counterexample": "Eski aygıt cache girdisi",
      "guestAcceptance": "Yeni disk eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_read_cache_positive",
        "negativeName": "os_mount_cache_read_cache_negative",
        "expectedMarker": "TURKOS/OS/K1595: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski aygıt cache girdisi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski aygıt cache girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1594"
    },
    {
      "id": "K1595",
      "number": 1595,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.read_cache",
      "stage": "integration",
      "title": "RO cache anahtar ve tahliye · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Anahtar device nesil LBA içerir.",
      "action": "Tek ürün Image'ında “Yeni disk eski payloadı almaz” kabulünü koştur. scripts/os-acceptance/mount_cache.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Anahtar device nesil LBA içerir",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_read_cache"
      },
      "dependencies": [
        "K1594"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "İki diskte aynı LBA",
      "counterexample": "Eski aygıt cache girdisi",
      "guestAcceptance": "Yeni disk eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_read_cache_positive",
        "negativeName": "os_mount_cache_read_cache_negative",
        "expectedMarker": "TURKOS/OS/K1595: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni disk eski payloadı almaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski aygıt cache girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1595"
    },
    {
      "id": "K1596",
      "number": 1596,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.unmount",
      "stage": "contract",
      "title": "Mount sökme ve busy ret · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Açık dosya varken ömür korunur.",
      "action": "“Mount sökme ve busy ret” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Açık dosya varken ömür korunur. “Boş mount clean unmount” kabulü ile “Canlı FD ile unmount” reddini aynı sözleşmeye bağla.",
      "invariant": "Açık dosya varken ömür korunur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_unmount"
      },
      "dependencies": [
        "K1595"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş mount clean unmount",
      "counterexample": "Canlı FD ile unmount",
      "guestAcceptance": "EBUSY sonra close unmount geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_unmount_positive",
        "negativeName": "os_mount_cache_unmount_negative",
        "expectedMarker": "TURKOS/OS/K1600: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Açık dosya varken ömür korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Canlı FD ile unmount” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1596"
    },
    {
      "id": "K1597",
      "number": 1597,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.unmount",
      "stage": "implementation",
      "title": "Mount sökme ve busy ret · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Açık dosya varken ömür korunur.",
      "action": "kernel/src/runtime/mount_cache.rs hedefinde os_mount_cache_unmount yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Açık dosya varken ömür korunur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_unmount"
      },
      "dependencies": [
        "K1596"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş mount clean unmount",
      "counterexample": "Canlı FD ile unmount",
      "guestAcceptance": "EBUSY sonra close unmount geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_unmount_positive",
        "negativeName": "os_mount_cache_unmount_negative",
        "expectedMarker": "TURKOS/OS/K1600: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş mount clean unmount ile Canlı FD ile unmount ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Canlı FD ile unmount” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1597"
    },
    {
      "id": "K1598",
      "number": 1598,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.unmount",
      "stage": "positive",
      "title": "Mount sökme ve busy ret · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Açık dosya varken ömür korunur.",
      "action": "os_mount_cache_unmount_positive testini oluştur: “Boş mount clean unmount”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Açık dosya varken ömür korunur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_unmount"
      },
      "dependencies": [
        "K1597"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş mount clean unmount",
      "counterexample": "Canlı FD ile unmount",
      "guestAcceptance": "EBUSY sonra close unmount geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_unmount_positive",
        "negativeName": "os_mount_cache_unmount_negative",
        "expectedMarker": "TURKOS/OS/K1600: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş mount clean unmount girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Canlı FD ile unmount” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1598"
    },
    {
      "id": "K1599",
      "number": 1599,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.unmount",
      "stage": "negative",
      "title": "Mount sökme ve busy ret · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Açık dosya varken ömür korunur.",
      "action": "os_mount_cache_unmount_negative testini oluştur: “Canlı FD ile unmount”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Açık dosya varken ömür korunur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_unmount"
      },
      "dependencies": [
        "K1598"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş mount clean unmount",
      "counterexample": "Canlı FD ile unmount",
      "guestAcceptance": "EBUSY sonra close unmount geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_unmount_positive",
        "negativeName": "os_mount_cache_unmount_negative",
        "expectedMarker": "TURKOS/OS/K1600: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Canlı FD ile unmount karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Canlı FD ile unmount” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1599"
    },
    {
      "id": "K1600",
      "number": 1600,
      "phase": 10,
      "module": "mount_cache",
      "feature": "mount_cache.unmount",
      "stage": "integration",
      "title": "Mount sökme ve busy ret · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Dosya yolu çözen kullanıcı servisi ile aygıt sektör isteği ayrılır. İlk mountlar salt-okunur kalır. Bu hamlenin koruduğu değişmez: Açık dosya varken ömür korunur.",
      "action": "Tek ürün Image'ında “EBUSY sonra close unmount geçer” kabulünü koştur. scripts/os-acceptance/mount_cache.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Açık dosya varken ömür korunur",
      "source": {
        "target": "kernel/src/runtime/mount_cache.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_mount_cache_unmount"
      },
      "dependencies": [
        "K1599"
      ],
      "phasePrerequisites": [
        9
      ],
      "positive": "Boş mount clean unmount",
      "counterexample": "Canlı FD ile unmount",
      "guestAcceptance": "EBUSY sonra close unmount geçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/mount_cache.rs",
        "harness": "scripts/os-acceptance/mount_cache.mjs",
        "positiveName": "os_mount_cache_unmount_positive",
        "negativeName": "os_mount_cache_unmount_negative",
        "expectedMarker": "TURKOS/OS/K1600: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EBUSY sonra close unmount geçer; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Canlı FD ile unmount” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-10#k1600"
    },
    {
      "id": "K1601",
      "number": 1601,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.superblock",
      "stage": "contract",
      "title": "Sürümlü süperblok sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Format sürümü özellik ve boy sınırları açık olur.",
      "action": "“Sürümlü süperblok sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Format sürümü özellik ve boy sınırları açık olur. “Bilinen v1 ve önerilen v2” kabulü ile “Bilinmeyen zorunlu feature” reddini aynı sözleşmeye bağla.",
      "invariant": "Format sürümü özellik ve boy sınırları açık olur",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_superblock"
      },
      "dependencies": [],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bilinen v1 ve önerilen v2",
      "counterexample": "Bilinmeyen zorunlu feature",
      "guestAcceptance": "Unsupported format salt-okunur ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_superblock_positive",
        "negativeName": "os_turkfs_reader_superblock_negative",
        "expectedMarker": "TURKOS/OS/K1605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Format sürümü özellik ve boy sınırları açık olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bilinmeyen zorunlu feature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1601"
    },
    {
      "id": "K1602",
      "number": 1602,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.superblock",
      "stage": "implementation",
      "title": "Sürümlü süperblok sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Format sürümü özellik ve boy sınırları açık olur.",
      "action": "kernel/src/runtime/turkfs_reader.rs hedefinde os_turkfs_reader_superblock yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Format sürümü özellik ve boy sınırları açık olur",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_superblock"
      },
      "dependencies": [
        "K1601"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bilinen v1 ve önerilen v2",
      "counterexample": "Bilinmeyen zorunlu feature",
      "guestAcceptance": "Unsupported format salt-okunur ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_superblock_positive",
        "negativeName": "os_turkfs_reader_superblock_negative",
        "expectedMarker": "TURKOS/OS/K1605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen v1 ve önerilen v2 ile Bilinmeyen zorunlu feature ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bilinmeyen zorunlu feature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1602"
    },
    {
      "id": "K1603",
      "number": 1603,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.superblock",
      "stage": "positive",
      "title": "Sürümlü süperblok sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Format sürümü özellik ve boy sınırları açık olur.",
      "action": "os_turkfs_reader_superblock_positive testini oluştur: “Bilinen v1 ve önerilen v2”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Format sürümü özellik ve boy sınırları açık olur",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_superblock"
      },
      "dependencies": [
        "K1602"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bilinen v1 ve önerilen v2",
      "counterexample": "Bilinmeyen zorunlu feature",
      "guestAcceptance": "Unsupported format salt-okunur ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_superblock_positive",
        "negativeName": "os_turkfs_reader_superblock_negative",
        "expectedMarker": "TURKOS/OS/K1605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen v1 ve önerilen v2 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bilinmeyen zorunlu feature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1603"
    },
    {
      "id": "K1604",
      "number": 1604,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.superblock",
      "stage": "negative",
      "title": "Sürümlü süperblok sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Format sürümü özellik ve boy sınırları açık olur.",
      "action": "os_turkfs_reader_superblock_negative testini oluştur: “Bilinmeyen zorunlu feature”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Format sürümü özellik ve boy sınırları açık olur",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_superblock"
      },
      "dependencies": [
        "K1603"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bilinen v1 ve önerilen v2",
      "counterexample": "Bilinmeyen zorunlu feature",
      "guestAcceptance": "Unsupported format salt-okunur ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_superblock_positive",
        "negativeName": "os_turkfs_reader_superblock_negative",
        "expectedMarker": "TURKOS/OS/K1605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bilinmeyen zorunlu feature karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bilinmeyen zorunlu feature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1604"
    },
    {
      "id": "K1605",
      "number": 1605,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.superblock",
      "stage": "integration",
      "title": "Sürümlü süperblok sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Format sürümü özellik ve boy sınırları açık olur.",
      "action": "Tek ürün Image'ında “Unsupported format salt-okunur ret” kabulünü koştur. scripts/os-acceptance/turkfs_reader.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Format sürümü özellik ve boy sınırları açık olur",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_superblock"
      },
      "dependencies": [
        "K1604"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bilinen v1 ve önerilen v2",
      "counterexample": "Bilinmeyen zorunlu feature",
      "guestAcceptance": "Unsupported format salt-okunur ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_superblock_positive",
        "negativeName": "os_turkfs_reader_superblock_negative",
        "expectedMarker": "TURKOS/OS/K1605: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Unsupported format salt-okunur ret; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bilinmeyen zorunlu feature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1605"
    },
    {
      "id": "K1606",
      "number": 1606,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.inodes",
      "stage": "contract",
      "title": "Inode tablo bütünlüğü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Inode sayısı tablo kapasitesine sığar.",
      "action": "“Inode tablo bütünlüğü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Inode sayısı tablo kapasitesine sığar. “Boş ve çok bloklu inode” kabulü ile “Inode index kapasite dışı” reddini aynı sözleşmeye bağla.",
      "invariant": "Inode sayısı tablo kapasitesine sığar",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_inodes"
      },
      "dependencies": [
        "K1605"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Boş ve çok bloklu inode",
      "counterexample": "Inode index kapasite dışı",
      "guestAcceptance": "Bozuk inode yeni I/O üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_inodes_positive",
        "negativeName": "os_turkfs_reader_inodes_negative",
        "expectedMarker": "TURKOS/OS/K1610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Inode sayısı tablo kapasitesine sığar kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Inode index kapasite dışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1606"
    },
    {
      "id": "K1607",
      "number": 1607,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.inodes",
      "stage": "implementation",
      "title": "Inode tablo bütünlüğü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Inode sayısı tablo kapasitesine sığar.",
      "action": "kernel/src/runtime/turkfs_reader.rs hedefinde os_turkfs_reader_inodes yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Inode sayısı tablo kapasitesine sığar",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_inodes"
      },
      "dependencies": [
        "K1606"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Boş ve çok bloklu inode",
      "counterexample": "Inode index kapasite dışı",
      "guestAcceptance": "Bozuk inode yeni I/O üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_inodes_positive",
        "negativeName": "os_turkfs_reader_inodes_negative",
        "expectedMarker": "TURKOS/OS/K1610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş ve çok bloklu inode ile Inode index kapasite dışı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Inode index kapasite dışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1607"
    },
    {
      "id": "K1608",
      "number": 1608,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.inodes",
      "stage": "positive",
      "title": "Inode tablo bütünlüğü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Inode sayısı tablo kapasitesine sığar.",
      "action": "os_turkfs_reader_inodes_positive testini oluştur: “Boş ve çok bloklu inode”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Inode sayısı tablo kapasitesine sığar",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_inodes"
      },
      "dependencies": [
        "K1607"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Boş ve çok bloklu inode",
      "counterexample": "Inode index kapasite dışı",
      "guestAcceptance": "Bozuk inode yeni I/O üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_inodes_positive",
        "negativeName": "os_turkfs_reader_inodes_negative",
        "expectedMarker": "TURKOS/OS/K1610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş ve çok bloklu inode girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Inode index kapasite dışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1608"
    },
    {
      "id": "K1609",
      "number": 1609,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.inodes",
      "stage": "negative",
      "title": "Inode tablo bütünlüğü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Inode sayısı tablo kapasitesine sığar.",
      "action": "os_turkfs_reader_inodes_negative testini oluştur: “Inode index kapasite dışı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Inode sayısı tablo kapasitesine sığar",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_inodes"
      },
      "dependencies": [
        "K1608"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Boş ve çok bloklu inode",
      "counterexample": "Inode index kapasite dışı",
      "guestAcceptance": "Bozuk inode yeni I/O üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_inodes_positive",
        "negativeName": "os_turkfs_reader_inodes_negative",
        "expectedMarker": "TURKOS/OS/K1610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Inode index kapasite dışı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Inode index kapasite dışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1609"
    },
    {
      "id": "K1610",
      "number": 1610,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.inodes",
      "stage": "integration",
      "title": "Inode tablo bütünlüğü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Inode sayısı tablo kapasitesine sığar.",
      "action": "Tek ürün Image'ında “Bozuk inode yeni I/O üretmez” kabulünü koştur. scripts/os-acceptance/turkfs_reader.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Inode sayısı tablo kapasitesine sığar",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_inodes"
      },
      "dependencies": [
        "K1609"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Boş ve çok bloklu inode",
      "counterexample": "Inode index kapasite dışı",
      "guestAcceptance": "Bozuk inode yeni I/O üretmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_inodes_positive",
        "negativeName": "os_turkfs_reader_inodes_negative",
        "expectedMarker": "TURKOS/OS/K1610: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk inode yeni I/O üretmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Inode index kapasite dışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1610"
    },
    {
      "id": "K1611",
      "number": 1611,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.extents",
      "stage": "contract",
      "title": "Çok extent dosya okuma · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Extentler sıralı ayrık ve kapasite içinde.",
      "action": "“Çok extent dosya okuma” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Extentler sıralı ayrık ve kapasite içinde. “Üç ayrık extent dosyası” kabulü ile “İki extent aynı bloğu sahiplenir” reddini aynı sözleşmeye bağla.",
      "invariant": "Extentler sıralı ayrık ve kapasite içinde",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_extents"
      },
      "dependencies": [
        "K1610"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç ayrık extent dosyası",
      "counterexample": "İki extent aynı bloğu sahiplenir",
      "guestAcceptance": "Dosya hash bağımsız oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_extents_positive",
        "negativeName": "os_turkfs_reader_extents_negative",
        "expectedMarker": "TURKOS/OS/K1615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Extentler sıralı ayrık ve kapasite içinde kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki extent aynı bloğu sahiplenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1611"
    },
    {
      "id": "K1612",
      "number": 1612,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.extents",
      "stage": "implementation",
      "title": "Çok extent dosya okuma · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Extentler sıralı ayrık ve kapasite içinde.",
      "action": "kernel/src/runtime/turkfs_reader.rs hedefinde os_turkfs_reader_extents yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Extentler sıralı ayrık ve kapasite içinde",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_extents"
      },
      "dependencies": [
        "K1611"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç ayrık extent dosyası",
      "counterexample": "İki extent aynı bloğu sahiplenir",
      "guestAcceptance": "Dosya hash bağımsız oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_extents_positive",
        "negativeName": "os_turkfs_reader_extents_negative",
        "expectedMarker": "TURKOS/OS/K1615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç ayrık extent dosyası ile İki extent aynı bloğu sahiplenir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki extent aynı bloğu sahiplenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1612"
    },
    {
      "id": "K1613",
      "number": 1613,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.extents",
      "stage": "positive",
      "title": "Çok extent dosya okuma · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Extentler sıralı ayrık ve kapasite içinde.",
      "action": "os_turkfs_reader_extents_positive testini oluştur: “Üç ayrık extent dosyası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Extentler sıralı ayrık ve kapasite içinde",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_extents"
      },
      "dependencies": [
        "K1612"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç ayrık extent dosyası",
      "counterexample": "İki extent aynı bloğu sahiplenir",
      "guestAcceptance": "Dosya hash bağımsız oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_extents_positive",
        "negativeName": "os_turkfs_reader_extents_negative",
        "expectedMarker": "TURKOS/OS/K1615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç ayrık extent dosyası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki extent aynı bloğu sahiplenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1613"
    },
    {
      "id": "K1614",
      "number": 1614,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.extents",
      "stage": "negative",
      "title": "Çok extent dosya okuma · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Extentler sıralı ayrık ve kapasite içinde.",
      "action": "os_turkfs_reader_extents_negative testini oluştur: “İki extent aynı bloğu sahiplenir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Extentler sıralı ayrık ve kapasite içinde",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_extents"
      },
      "dependencies": [
        "K1613"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç ayrık extent dosyası",
      "counterexample": "İki extent aynı bloğu sahiplenir",
      "guestAcceptance": "Dosya hash bağımsız oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_extents_positive",
        "negativeName": "os_turkfs_reader_extents_negative",
        "expectedMarker": "TURKOS/OS/K1615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki extent aynı bloğu sahiplenir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki extent aynı bloğu sahiplenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1614"
    },
    {
      "id": "K1615",
      "number": 1615,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.extents",
      "stage": "integration",
      "title": "Çok extent dosya okuma · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Extentler sıralı ayrık ve kapasite içinde.",
      "action": "Tek ürün Image'ında “Dosya hash bağımsız oracle ile eşit” kabulünü koştur. scripts/os-acceptance/turkfs_reader.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Extentler sıralı ayrık ve kapasite içinde",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_extents"
      },
      "dependencies": [
        "K1614"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç ayrık extent dosyası",
      "counterexample": "İki extent aynı bloğu sahiplenir",
      "guestAcceptance": "Dosya hash bağımsız oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_extents_positive",
        "negativeName": "os_turkfs_reader_extents_negative",
        "expectedMarker": "TURKOS/OS/K1615: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dosya hash bağımsız oracle ile eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki extent aynı bloğu sahiplenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1615"
    },
    {
      "id": "K1616",
      "number": 1616,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.directories",
      "stage": "contract",
      "title": "Genel dizin dolaşımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin adı inode türü ve döngü sınırlıdır.",
      "action": "“Genel dizin dolaşımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Dizin adı inode türü ve döngü sınırlıdır. “Üç seviyeli dizin ağacı” kabulü ile “Öz döngülü inode” reddini aynı sözleşmeye bağla.",
      "invariant": "Dizin adı inode türü ve döngü sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_directories"
      },
      "dependencies": [
        "K1615"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç seviyeli dizin ağacı",
      "counterexample": "Öz döngülü inode",
      "guestAcceptance": "ELOOP veya format hatası bounded",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_directories_positive",
        "negativeName": "os_turkfs_reader_directories_negative",
        "expectedMarker": "TURKOS/OS/K1620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Dizin adı inode türü ve döngü sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Öz döngülü inode” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1616"
    },
    {
      "id": "K1617",
      "number": 1617,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.directories",
      "stage": "implementation",
      "title": "Genel dizin dolaşımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin adı inode türü ve döngü sınırlıdır.",
      "action": "kernel/src/runtime/turkfs_reader.rs hedefinde os_turkfs_reader_directories yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Dizin adı inode türü ve döngü sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_directories"
      },
      "dependencies": [
        "K1616"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç seviyeli dizin ağacı",
      "counterexample": "Öz döngülü inode",
      "guestAcceptance": "ELOOP veya format hatası bounded",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_directories_positive",
        "negativeName": "os_turkfs_reader_directories_negative",
        "expectedMarker": "TURKOS/OS/K1620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç seviyeli dizin ağacı ile Öz döngülü inode ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Öz döngülü inode” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1617"
    },
    {
      "id": "K1618",
      "number": 1618,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.directories",
      "stage": "positive",
      "title": "Genel dizin dolaşımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin adı inode türü ve döngü sınırlıdır.",
      "action": "os_turkfs_reader_directories_positive testini oluştur: “Üç seviyeli dizin ağacı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Dizin adı inode türü ve döngü sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_directories"
      },
      "dependencies": [
        "K1617"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç seviyeli dizin ağacı",
      "counterexample": "Öz döngülü inode",
      "guestAcceptance": "ELOOP veya format hatası bounded",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_directories_positive",
        "negativeName": "os_turkfs_reader_directories_negative",
        "expectedMarker": "TURKOS/OS/K1620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç seviyeli dizin ağacı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Öz döngülü inode” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1618"
    },
    {
      "id": "K1619",
      "number": 1619,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.directories",
      "stage": "negative",
      "title": "Genel dizin dolaşımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin adı inode türü ve döngü sınırlıdır.",
      "action": "os_turkfs_reader_directories_negative testini oluştur: “Öz döngülü inode”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Dizin adı inode türü ve döngü sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_directories"
      },
      "dependencies": [
        "K1618"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç seviyeli dizin ağacı",
      "counterexample": "Öz döngülü inode",
      "guestAcceptance": "ELOOP veya format hatası bounded",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_directories_positive",
        "negativeName": "os_turkfs_reader_directories_negative",
        "expectedMarker": "TURKOS/OS/K1620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Öz döngülü inode karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Öz döngülü inode” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1619"
    },
    {
      "id": "K1620",
      "number": 1620,
      "phase": 11,
      "module": "turkfs_reader",
      "feature": "turkfs_reader.directories",
      "stage": "integration",
      "title": "Genel dizin dolaşımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin adı inode türü ve döngü sınırlıdır.",
      "action": "Tek ürün Image'ında “ELOOP veya format hatası bounded” kabulünü koştur. scripts/os-acceptance/turkfs_reader.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Dizin adı inode türü ve döngü sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_reader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_reader_directories"
      },
      "dependencies": [
        "K1619"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç seviyeli dizin ağacı",
      "counterexample": "Öz döngülü inode",
      "guestAcceptance": "ELOOP veya format hatası bounded",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_reader.rs",
        "harness": "scripts/os-acceptance/turkfs_reader.mjs",
        "positiveName": "os_turkfs_reader_directories_positive",
        "negativeName": "os_turkfs_reader_directories_negative",
        "expectedMarker": "TURKOS/OS/K1620: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ELOOP veya format hatası bounded; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Öz döngülü inode” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1620"
    },
    {
      "id": "K1621",
      "number": 1621,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.bitmap",
      "stage": "contract",
      "title": "Bitmap sahiplik ve rezervasyon · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Metadata blokları kullanıcı verisi olmaz.",
      "action": "“Bitmap sahiplik ve rezervasyon” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Metadata blokları kullanıcı verisi olmaz. “Son boş blok edinimi” kabulü ile “Reserved bit boş gösterilir” reddini aynı sözleşmeye bağla.",
      "invariant": "Metadata blokları kullanıcı verisi olmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_bitmap"
      },
      "dependencies": [
        "K1620"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son boş blok edinimi",
      "counterexample": "Reserved bit boş gösterilir",
      "guestAcceptance": "Kaynak sahiplik hesabı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_bitmap_positive",
        "negativeName": "os_turkfs_allocation_bitmap_negative",
        "expectedMarker": "TURKOS/OS/K1625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Metadata blokları kullanıcı verisi olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Reserved bit boş gösterilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1621"
    },
    {
      "id": "K1622",
      "number": 1622,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.bitmap",
      "stage": "implementation",
      "title": "Bitmap sahiplik ve rezervasyon · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Metadata blokları kullanıcı verisi olmaz.",
      "action": "kernel/src/runtime/turkfs_allocation.rs hedefinde os_turkfs_allocation_bitmap yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Metadata blokları kullanıcı verisi olmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_bitmap"
      },
      "dependencies": [
        "K1621"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son boş blok edinimi",
      "counterexample": "Reserved bit boş gösterilir",
      "guestAcceptance": "Kaynak sahiplik hesabı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_bitmap_positive",
        "negativeName": "os_turkfs_allocation_bitmap_negative",
        "expectedMarker": "TURKOS/OS/K1625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Son boş blok edinimi ile Reserved bit boş gösterilir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Reserved bit boş gösterilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1622"
    },
    {
      "id": "K1623",
      "number": 1623,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.bitmap",
      "stage": "positive",
      "title": "Bitmap sahiplik ve rezervasyon · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Metadata blokları kullanıcı verisi olmaz.",
      "action": "os_turkfs_allocation_bitmap_positive testini oluştur: “Son boş blok edinimi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Metadata blokları kullanıcı verisi olmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_bitmap"
      },
      "dependencies": [
        "K1622"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son boş blok edinimi",
      "counterexample": "Reserved bit boş gösterilir",
      "guestAcceptance": "Kaynak sahiplik hesabı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_bitmap_positive",
        "negativeName": "os_turkfs_allocation_bitmap_negative",
        "expectedMarker": "TURKOS/OS/K1625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Son boş blok edinimi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Reserved bit boş gösterilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1623"
    },
    {
      "id": "K1624",
      "number": 1624,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.bitmap",
      "stage": "negative",
      "title": "Bitmap sahiplik ve rezervasyon · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Metadata blokları kullanıcı verisi olmaz.",
      "action": "os_turkfs_allocation_bitmap_negative testini oluştur: “Reserved bit boş gösterilir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Metadata blokları kullanıcı verisi olmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_bitmap"
      },
      "dependencies": [
        "K1623"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son boş blok edinimi",
      "counterexample": "Reserved bit boş gösterilir",
      "guestAcceptance": "Kaynak sahiplik hesabı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_bitmap_positive",
        "negativeName": "os_turkfs_allocation_bitmap_negative",
        "expectedMarker": "TURKOS/OS/K1625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Reserved bit boş gösterilir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Reserved bit boş gösterilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1624"
    },
    {
      "id": "K1625",
      "number": 1625,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.bitmap",
      "stage": "integration",
      "title": "Bitmap sahiplik ve rezervasyon · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Metadata blokları kullanıcı verisi olmaz.",
      "action": "Tek ürün Image'ında “Kaynak sahiplik hesabı eşit” kabulünü koştur. scripts/os-acceptance/turkfs_allocation.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Metadata blokları kullanıcı verisi olmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_bitmap"
      },
      "dependencies": [
        "K1624"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son boş blok edinimi",
      "counterexample": "Reserved bit boş gösterilir",
      "guestAcceptance": "Kaynak sahiplik hesabı eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_bitmap_positive",
        "negativeName": "os_turkfs_allocation_bitmap_negative",
        "expectedMarker": "TURKOS/OS/K1625: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kaynak sahiplik hesabı eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Reserved bit boş gösterilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1625"
    },
    {
      "id": "K1626",
      "number": 1626,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.extent_growth",
      "stage": "contract",
      "title": "Dosya extent büyütme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Plan atomik ve eski veri korunur.",
      "action": "“Dosya extent büyütme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Plan atomik ve eski veri korunur. “Birden üç extente büyüme” kabulü ile “İkinci extentte ENOSPC” reddini aynı sözleşmeye bağla.",
      "invariant": "Plan atomik ve eski veri korunur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_extent_growth"
      },
      "dependencies": [
        "K1625"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Birden üç extente büyüme",
      "counterexample": "İkinci extentte ENOSPC",
      "guestAcceptance": "İlk inode ve bitmap aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_extent_growth_positive",
        "negativeName": "os_turkfs_allocation_extent_growth_negative",
        "expectedMarker": "TURKOS/OS/K1630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Plan atomik ve eski veri korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İkinci extentte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1626"
    },
    {
      "id": "K1627",
      "number": 1627,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.extent_growth",
      "stage": "implementation",
      "title": "Dosya extent büyütme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Plan atomik ve eski veri korunur.",
      "action": "kernel/src/runtime/turkfs_allocation.rs hedefinde os_turkfs_allocation_extent_growth yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Plan atomik ve eski veri korunur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_extent_growth"
      },
      "dependencies": [
        "K1626"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Birden üç extente büyüme",
      "counterexample": "İkinci extentte ENOSPC",
      "guestAcceptance": "İlk inode ve bitmap aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_extent_growth_positive",
        "negativeName": "os_turkfs_allocation_extent_growth_negative",
        "expectedMarker": "TURKOS/OS/K1630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Birden üç extente büyüme ile İkinci extentte ENOSPC ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İkinci extentte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1627"
    },
    {
      "id": "K1628",
      "number": 1628,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.extent_growth",
      "stage": "positive",
      "title": "Dosya extent büyütme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Plan atomik ve eski veri korunur.",
      "action": "os_turkfs_allocation_extent_growth_positive testini oluştur: “Birden üç extente büyüme”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Plan atomik ve eski veri korunur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_extent_growth"
      },
      "dependencies": [
        "K1627"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Birden üç extente büyüme",
      "counterexample": "İkinci extentte ENOSPC",
      "guestAcceptance": "İlk inode ve bitmap aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_extent_growth_positive",
        "negativeName": "os_turkfs_allocation_extent_growth_negative",
        "expectedMarker": "TURKOS/OS/K1630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Birden üç extente büyüme girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İkinci extentte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1628"
    },
    {
      "id": "K1629",
      "number": 1629,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.extent_growth",
      "stage": "negative",
      "title": "Dosya extent büyütme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Plan atomik ve eski veri korunur.",
      "action": "os_turkfs_allocation_extent_growth_negative testini oluştur: “İkinci extentte ENOSPC”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Plan atomik ve eski veri korunur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_extent_growth"
      },
      "dependencies": [
        "K1628"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Birden üç extente büyüme",
      "counterexample": "İkinci extentte ENOSPC",
      "guestAcceptance": "İlk inode ve bitmap aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_extent_growth_positive",
        "negativeName": "os_turkfs_allocation_extent_growth_negative",
        "expectedMarker": "TURKOS/OS/K1630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İkinci extentte ENOSPC karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İkinci extentte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1629"
    },
    {
      "id": "K1630",
      "number": 1630,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.extent_growth",
      "stage": "integration",
      "title": "Dosya extent büyütme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Plan atomik ve eski veri korunur.",
      "action": "Tek ürün Image'ında “İlk inode ve bitmap aynı kalır” kabulünü koştur. scripts/os-acceptance/turkfs_allocation.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Plan atomik ve eski veri korunur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_extent_growth"
      },
      "dependencies": [
        "K1629"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Birden üç extente büyüme",
      "counterexample": "İkinci extentte ENOSPC",
      "guestAcceptance": "İlk inode ve bitmap aynı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_extent_growth_positive",
        "negativeName": "os_turkfs_allocation_extent_growth_negative",
        "expectedMarker": "TURKOS/OS/K1630: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İlk inode ve bitmap aynı kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İkinci extentte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1630"
    },
    {
      "id": "K1631",
      "number": 1631,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.inode_alloc",
      "stage": "contract",
      "title": "Inode yuvası tahsisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yeni inode tek nesil sahibiyle kurulur.",
      "action": "“Inode yuvası tahsisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yeni inode tek nesil sahibiyle kurulur. “Silinen slot yeniden kullanılır” kabulü ile “Eski inode referansı” reddini aynı sözleşmeye bağla.",
      "invariant": "Yeni inode tek nesil sahibiyle kurulur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_inode_alloc"
      },
      "dependencies": [
        "K1630"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Silinen slot yeniden kullanılır",
      "counterexample": "Eski inode referansı",
      "guestAcceptance": "Stale handle yeni dosyaya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_inode_alloc_positive",
        "negativeName": "os_turkfs_allocation_inode_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yeni inode tek nesil sahibiyle kurulur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski inode referansı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1631"
    },
    {
      "id": "K1632",
      "number": 1632,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.inode_alloc",
      "stage": "implementation",
      "title": "Inode yuvası tahsisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yeni inode tek nesil sahibiyle kurulur.",
      "action": "kernel/src/runtime/turkfs_allocation.rs hedefinde os_turkfs_allocation_inode_alloc yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yeni inode tek nesil sahibiyle kurulur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_inode_alloc"
      },
      "dependencies": [
        "K1631"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Silinen slot yeniden kullanılır",
      "counterexample": "Eski inode referansı",
      "guestAcceptance": "Stale handle yeni dosyaya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_inode_alloc_positive",
        "negativeName": "os_turkfs_allocation_inode_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Silinen slot yeniden kullanılır ile Eski inode referansı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski inode referansı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1632"
    },
    {
      "id": "K1633",
      "number": 1633,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.inode_alloc",
      "stage": "positive",
      "title": "Inode yuvası tahsisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yeni inode tek nesil sahibiyle kurulur.",
      "action": "os_turkfs_allocation_inode_alloc_positive testini oluştur: “Silinen slot yeniden kullanılır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yeni inode tek nesil sahibiyle kurulur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_inode_alloc"
      },
      "dependencies": [
        "K1632"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Silinen slot yeniden kullanılır",
      "counterexample": "Eski inode referansı",
      "guestAcceptance": "Stale handle yeni dosyaya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_inode_alloc_positive",
        "negativeName": "os_turkfs_allocation_inode_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Silinen slot yeniden kullanılır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski inode referansı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1633"
    },
    {
      "id": "K1634",
      "number": 1634,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.inode_alloc",
      "stage": "negative",
      "title": "Inode yuvası tahsisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yeni inode tek nesil sahibiyle kurulur.",
      "action": "os_turkfs_allocation_inode_alloc_negative testini oluştur: “Eski inode referansı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yeni inode tek nesil sahibiyle kurulur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_inode_alloc"
      },
      "dependencies": [
        "K1633"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Silinen slot yeniden kullanılır",
      "counterexample": "Eski inode referansı",
      "guestAcceptance": "Stale handle yeni dosyaya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_inode_alloc_positive",
        "negativeName": "os_turkfs_allocation_inode_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski inode referansı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski inode referansı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1634"
    },
    {
      "id": "K1635",
      "number": 1635,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.inode_alloc",
      "stage": "integration",
      "title": "Inode yuvası tahsisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yeni inode tek nesil sahibiyle kurulur.",
      "action": "Tek ürün Image'ında “Stale handle yeni dosyaya erişmez” kabulünü koştur. scripts/os-acceptance/turkfs_allocation.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yeni inode tek nesil sahibiyle kurulur",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_inode_alloc"
      },
      "dependencies": [
        "K1634"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Silinen slot yeniden kullanılır",
      "counterexample": "Eski inode referansı",
      "guestAcceptance": "Stale handle yeni dosyaya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_inode_alloc_positive",
        "negativeName": "os_turkfs_allocation_inode_alloc_negative",
        "expectedMarker": "TURKOS/OS/K1635: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Stale handle yeni dosyaya erişmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski inode referansı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1635"
    },
    {
      "id": "K1636",
      "number": 1636,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.truncate",
      "stage": "contract",
      "title": "Truncate ve blok emekliliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Canlı okuma backingini erken free etmez.",
      "action": "“Truncate ve blok emekliliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Canlı okuma backingini erken free etmez. “1025 bayttan 100 bayta” kabulü ile “Açık reader sırasında free” reddini aynı sözleşmeye bağla.",
      "invariant": "Canlı okuma backingini erken free etmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_truncate"
      },
      "dependencies": [
        "K1635"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "1025 bayttan 100 bayta",
      "counterexample": "Açık reader sırasında free",
      "guestAcceptance": "Yeni boy ve kuyruk byte sınırı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_truncate_positive",
        "negativeName": "os_turkfs_allocation_truncate_negative",
        "expectedMarker": "TURKOS/OS/K1640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Canlı okuma backingini erken free etmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Açık reader sırasında free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1636"
    },
    {
      "id": "K1637",
      "number": 1637,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.truncate",
      "stage": "implementation",
      "title": "Truncate ve blok emekliliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Canlı okuma backingini erken free etmez.",
      "action": "kernel/src/runtime/turkfs_allocation.rs hedefinde os_turkfs_allocation_truncate yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Canlı okuma backingini erken free etmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_truncate"
      },
      "dependencies": [
        "K1636"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "1025 bayttan 100 bayta",
      "counterexample": "Açık reader sırasında free",
      "guestAcceptance": "Yeni boy ve kuyruk byte sınırı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_truncate_positive",
        "negativeName": "os_turkfs_allocation_truncate_negative",
        "expectedMarker": "TURKOS/OS/K1640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 1025 bayttan 100 bayta ile Açık reader sırasında free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Açık reader sırasında free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1637"
    },
    {
      "id": "K1638",
      "number": 1638,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.truncate",
      "stage": "positive",
      "title": "Truncate ve blok emekliliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Canlı okuma backingini erken free etmez.",
      "action": "os_turkfs_allocation_truncate_positive testini oluştur: “1025 bayttan 100 bayta”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Canlı okuma backingini erken free etmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_truncate"
      },
      "dependencies": [
        "K1637"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "1025 bayttan 100 bayta",
      "counterexample": "Açık reader sırasında free",
      "guestAcceptance": "Yeni boy ve kuyruk byte sınırı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_truncate_positive",
        "negativeName": "os_turkfs_allocation_truncate_negative",
        "expectedMarker": "TURKOS/OS/K1640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 1025 bayttan 100 bayta girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Açık reader sırasında free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1638"
    },
    {
      "id": "K1639",
      "number": 1639,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.truncate",
      "stage": "negative",
      "title": "Truncate ve blok emekliliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Canlı okuma backingini erken free etmez.",
      "action": "os_turkfs_allocation_truncate_negative testini oluştur: “Açık reader sırasında free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Canlı okuma backingini erken free etmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_truncate"
      },
      "dependencies": [
        "K1638"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "1025 bayttan 100 bayta",
      "counterexample": "Açık reader sırasında free",
      "guestAcceptance": "Yeni boy ve kuyruk byte sınırı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_truncate_positive",
        "negativeName": "os_turkfs_allocation_truncate_negative",
        "expectedMarker": "TURKOS/OS/K1640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Açık reader sırasında free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Açık reader sırasında free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1639"
    },
    {
      "id": "K1640",
      "number": 1640,
      "phase": 11,
      "module": "turkfs_allocation",
      "feature": "turkfs_allocation.truncate",
      "stage": "integration",
      "title": "Truncate ve blok emekliliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Canlı okuma backingini erken free etmez.",
      "action": "Tek ürün Image'ında “Yeni boy ve kuyruk byte sınırı doğru” kabulünü koştur. scripts/os-acceptance/turkfs_allocation.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Canlı okuma backingini erken free etmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_allocation.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_allocation_truncate"
      },
      "dependencies": [
        "K1639"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "1025 bayttan 100 bayta",
      "counterexample": "Açık reader sırasında free",
      "guestAcceptance": "Yeni boy ve kuyruk byte sınırı doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_allocation.rs",
        "harness": "scripts/os-acceptance/turkfs_allocation.mjs",
        "positiveName": "os_turkfs_allocation_truncate_positive",
        "negativeName": "os_turkfs_allocation_truncate_negative",
        "expectedMarker": "TURKOS/OS/K1640: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni boy ve kuyruk byte sınırı doğru; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Açık reader sırasında free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1640"
    },
    {
      "id": "K1641",
      "number": 1641,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.create",
      "stage": "contract",
      "title": "Create ve mkdir işlemi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Ad inode bitmap tek transactiondır.",
      "action": "“Create ve mkdir işlemi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ad inode bitmap tek transactiondır. “Yeni dosya ve alt dizin” kabulü ile “Ad mevcut veya quota dolu” reddini aynı sözleşmeye bağla.",
      "invariant": "Ad inode bitmap tek transactiondır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_create"
      },
      "dependencies": [
        "K1640"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeni dosya ve alt dizin",
      "counterexample": "Ad mevcut veya quota dolu",
      "guestAcceptance": "Kısmi ad kaydı görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_create_positive",
        "negativeName": "os_turkfs_namespace_create_negative",
        "expectedMarker": "TURKOS/OS/K1645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ad inode bitmap tek transactiondır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ad mevcut veya quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1641"
    },
    {
      "id": "K1642",
      "number": 1642,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.create",
      "stage": "implementation",
      "title": "Create ve mkdir işlemi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Ad inode bitmap tek transactiondır.",
      "action": "kernel/src/runtime/turkfs_namespace.rs hedefinde os_turkfs_namespace_create yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ad inode bitmap tek transactiondır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_create"
      },
      "dependencies": [
        "K1641"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeni dosya ve alt dizin",
      "counterexample": "Ad mevcut veya quota dolu",
      "guestAcceptance": "Kısmi ad kaydı görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_create_positive",
        "negativeName": "os_turkfs_namespace_create_negative",
        "expectedMarker": "TURKOS/OS/K1645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yeni dosya ve alt dizin ile Ad mevcut veya quota dolu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ad mevcut veya quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1642"
    },
    {
      "id": "K1643",
      "number": 1643,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.create",
      "stage": "positive",
      "title": "Create ve mkdir işlemi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Ad inode bitmap tek transactiondır.",
      "action": "os_turkfs_namespace_create_positive testini oluştur: “Yeni dosya ve alt dizin”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ad inode bitmap tek transactiondır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_create"
      },
      "dependencies": [
        "K1642"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeni dosya ve alt dizin",
      "counterexample": "Ad mevcut veya quota dolu",
      "guestAcceptance": "Kısmi ad kaydı görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_create_positive",
        "negativeName": "os_turkfs_namespace_create_negative",
        "expectedMarker": "TURKOS/OS/K1645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yeni dosya ve alt dizin girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ad mevcut veya quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1643"
    },
    {
      "id": "K1644",
      "number": 1644,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.create",
      "stage": "negative",
      "title": "Create ve mkdir işlemi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Ad inode bitmap tek transactiondır.",
      "action": "os_turkfs_namespace_create_negative testini oluştur: “Ad mevcut veya quota dolu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ad inode bitmap tek transactiondır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_create"
      },
      "dependencies": [
        "K1643"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeni dosya ve alt dizin",
      "counterexample": "Ad mevcut veya quota dolu",
      "guestAcceptance": "Kısmi ad kaydı görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_create_positive",
        "negativeName": "os_turkfs_namespace_create_negative",
        "expectedMarker": "TURKOS/OS/K1645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ad mevcut veya quota dolu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ad mevcut veya quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1644"
    },
    {
      "id": "K1645",
      "number": 1645,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.create",
      "stage": "integration",
      "title": "Create ve mkdir işlemi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Ad inode bitmap tek transactiondır.",
      "action": "Tek ürün Image'ında “Kısmi ad kaydı görünmez” kabulünü koştur. scripts/os-acceptance/turkfs_namespace.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ad inode bitmap tek transactiondır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_create"
      },
      "dependencies": [
        "K1644"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeni dosya ve alt dizin",
      "counterexample": "Ad mevcut veya quota dolu",
      "guestAcceptance": "Kısmi ad kaydı görünmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_create_positive",
        "negativeName": "os_turkfs_namespace_create_negative",
        "expectedMarker": "TURKOS/OS/K1645: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kısmi ad kaydı görünmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ad mevcut veya quota dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1645"
    },
    {
      "id": "K1646",
      "number": 1646,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.rename",
      "stage": "contract",
      "title": "Atomik aynı mount rename · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kaynak hedef ad değişimi tanımlıdır.",
      "action": "“Atomik aynı mount rename” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kaynak hedef ad değişimi tanımlıdır. “Dosya adı değiştirilir” kabulü ile “Parent döngüsü yaratan rename” reddini aynı sözleşmeye bağla.",
      "invariant": "Kaynak hedef ad değişimi tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_rename"
      },
      "dependencies": [
        "K1645"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosya adı değiştirilir",
      "counterexample": "Parent döngüsü yaratan rename",
      "guestAcceptance": "Ya eski ya yeni ad kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_rename_positive",
        "negativeName": "os_turkfs_namespace_rename_negative",
        "expectedMarker": "TURKOS/OS/K1650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kaynak hedef ad değişimi tanımlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Parent döngüsü yaratan rename” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1646"
    },
    {
      "id": "K1647",
      "number": 1647,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.rename",
      "stage": "implementation",
      "title": "Atomik aynı mount rename · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kaynak hedef ad değişimi tanımlıdır.",
      "action": "kernel/src/runtime/turkfs_namespace.rs hedefinde os_turkfs_namespace_rename yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kaynak hedef ad değişimi tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_rename"
      },
      "dependencies": [
        "K1646"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosya adı değiştirilir",
      "counterexample": "Parent döngüsü yaratan rename",
      "guestAcceptance": "Ya eski ya yeni ad kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_rename_positive",
        "negativeName": "os_turkfs_namespace_rename_negative",
        "expectedMarker": "TURKOS/OS/K1650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dosya adı değiştirilir ile Parent döngüsü yaratan rename ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Parent döngüsü yaratan rename” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1647"
    },
    {
      "id": "K1648",
      "number": 1648,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.rename",
      "stage": "positive",
      "title": "Atomik aynı mount rename · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kaynak hedef ad değişimi tanımlıdır.",
      "action": "os_turkfs_namespace_rename_positive testini oluştur: “Dosya adı değiştirilir”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kaynak hedef ad değişimi tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_rename"
      },
      "dependencies": [
        "K1647"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosya adı değiştirilir",
      "counterexample": "Parent döngüsü yaratan rename",
      "guestAcceptance": "Ya eski ya yeni ad kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_rename_positive",
        "negativeName": "os_turkfs_namespace_rename_negative",
        "expectedMarker": "TURKOS/OS/K1650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dosya adı değiştirilir girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Parent döngüsü yaratan rename” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1648"
    },
    {
      "id": "K1649",
      "number": 1649,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.rename",
      "stage": "negative",
      "title": "Atomik aynı mount rename · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kaynak hedef ad değişimi tanımlıdır.",
      "action": "os_turkfs_namespace_rename_negative testini oluştur: “Parent döngüsü yaratan rename”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kaynak hedef ad değişimi tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_rename"
      },
      "dependencies": [
        "K1648"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosya adı değiştirilir",
      "counterexample": "Parent döngüsü yaratan rename",
      "guestAcceptance": "Ya eski ya yeni ad kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_rename_positive",
        "negativeName": "os_turkfs_namespace_rename_negative",
        "expectedMarker": "TURKOS/OS/K1650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Parent döngüsü yaratan rename karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Parent döngüsü yaratan rename” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1649"
    },
    {
      "id": "K1650",
      "number": 1650,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.rename",
      "stage": "integration",
      "title": "Atomik aynı mount rename · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kaynak hedef ad değişimi tanımlıdır.",
      "action": "Tek ürün Image'ında “Ya eski ya yeni ad kalır” kabulünü koştur. scripts/os-acceptance/turkfs_namespace.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kaynak hedef ad değişimi tanımlıdır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_rename"
      },
      "dependencies": [
        "K1649"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosya adı değiştirilir",
      "counterexample": "Parent döngüsü yaratan rename",
      "guestAcceptance": "Ya eski ya yeni ad kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_rename_positive",
        "negativeName": "os_turkfs_namespace_rename_negative",
        "expectedMarker": "TURKOS/OS/K1650: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ya eski ya yeni ad kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Parent döngüsü yaratan rename” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1650"
    },
    {
      "id": "K1651",
      "number": 1651,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.unlink",
      "stage": "contract",
      "title": "Unlink açık dosya ömrü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Son açık referans bitmeden bloklar kalır.",
      "action": "“Unlink açık dosya ömrü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Son açık referans bitmeden bloklar kalır. “Open sonra unlink sonra read” kabulü ile “Unlink canlı backing free eder” reddini aynı sözleşmeye bağla.",
      "invariant": "Son açık referans bitmeden bloklar kalır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_unlink"
      },
      "dependencies": [
        "K1650"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Open sonra unlink sonra read",
      "counterexample": "Unlink canlı backing free eder",
      "guestAcceptance": "Reader aynı dosya hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_unlink_positive",
        "negativeName": "os_turkfs_namespace_unlink_negative",
        "expectedMarker": "TURKOS/OS/K1655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Son açık referans bitmeden bloklar kalır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Unlink canlı backing free eder” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1651"
    },
    {
      "id": "K1652",
      "number": 1652,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.unlink",
      "stage": "implementation",
      "title": "Unlink açık dosya ömrü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Son açık referans bitmeden bloklar kalır.",
      "action": "kernel/src/runtime/turkfs_namespace.rs hedefinde os_turkfs_namespace_unlink yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Son açık referans bitmeden bloklar kalır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_unlink"
      },
      "dependencies": [
        "K1651"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Open sonra unlink sonra read",
      "counterexample": "Unlink canlı backing free eder",
      "guestAcceptance": "Reader aynı dosya hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_unlink_positive",
        "negativeName": "os_turkfs_namespace_unlink_negative",
        "expectedMarker": "TURKOS/OS/K1655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Open sonra unlink sonra read ile Unlink canlı backing free eder ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Unlink canlı backing free eder” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1652"
    },
    {
      "id": "K1653",
      "number": 1653,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.unlink",
      "stage": "positive",
      "title": "Unlink açık dosya ömrü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Son açık referans bitmeden bloklar kalır.",
      "action": "os_turkfs_namespace_unlink_positive testini oluştur: “Open sonra unlink sonra read”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Son açık referans bitmeden bloklar kalır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_unlink"
      },
      "dependencies": [
        "K1652"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Open sonra unlink sonra read",
      "counterexample": "Unlink canlı backing free eder",
      "guestAcceptance": "Reader aynı dosya hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_unlink_positive",
        "negativeName": "os_turkfs_namespace_unlink_negative",
        "expectedMarker": "TURKOS/OS/K1655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Open sonra unlink sonra read girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Unlink canlı backing free eder” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1653"
    },
    {
      "id": "K1654",
      "number": 1654,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.unlink",
      "stage": "negative",
      "title": "Unlink açık dosya ömrü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Son açık referans bitmeden bloklar kalır.",
      "action": "os_turkfs_namespace_unlink_negative testini oluştur: “Unlink canlı backing free eder”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Son açık referans bitmeden bloklar kalır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_unlink"
      },
      "dependencies": [
        "K1653"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Open sonra unlink sonra read",
      "counterexample": "Unlink canlı backing free eder",
      "guestAcceptance": "Reader aynı dosya hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_unlink_positive",
        "negativeName": "os_turkfs_namespace_unlink_negative",
        "expectedMarker": "TURKOS/OS/K1655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Unlink canlı backing free eder karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Unlink canlı backing free eder” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1654"
    },
    {
      "id": "K1655",
      "number": 1655,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.unlink",
      "stage": "integration",
      "title": "Unlink açık dosya ömrü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Son açık referans bitmeden bloklar kalır.",
      "action": "Tek ürün Image'ında “Reader aynı dosya hashini alır” kabulünü koştur. scripts/os-acceptance/turkfs_namespace.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Son açık referans bitmeden bloklar kalır",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_unlink"
      },
      "dependencies": [
        "K1654"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Open sonra unlink sonra read",
      "counterexample": "Unlink canlı backing free eder",
      "guestAcceptance": "Reader aynı dosya hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_unlink_positive",
        "negativeName": "os_turkfs_namespace_unlink_negative",
        "expectedMarker": "TURKOS/OS/K1655: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Reader aynı dosya hashini alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Unlink canlı backing free eder” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1655"
    },
    {
      "id": "K1656",
      "number": 1656,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.links",
      "stage": "contract",
      "title": "Link sayısı ve dizin politikası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin hardlink ve sayaç taşması reddedilir.",
      "action": "“Link sayısı ve dizin politikası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Dizin hardlink ve sayaç taşması reddedilir. “Dosyaya iki ad” kabulü ile “Dizine üçüncü parent” reddini aynı sözleşmeye bağla.",
      "invariant": "Dizin hardlink ve sayaç taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_links"
      },
      "dependencies": [
        "K1655"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosyaya iki ad",
      "counterexample": "Dizine üçüncü parent",
      "guestAcceptance": "Ret sonrası namespace sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_links_positive",
        "negativeName": "os_turkfs_namespace_links_negative",
        "expectedMarker": "TURKOS/OS/K1660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Dizin hardlink ve sayaç taşması reddedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Dizine üçüncü parent” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1656"
    },
    {
      "id": "K1657",
      "number": 1657,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.links",
      "stage": "implementation",
      "title": "Link sayısı ve dizin politikası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin hardlink ve sayaç taşması reddedilir.",
      "action": "kernel/src/runtime/turkfs_namespace.rs hedefinde os_turkfs_namespace_links yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Dizin hardlink ve sayaç taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_links"
      },
      "dependencies": [
        "K1656"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosyaya iki ad",
      "counterexample": "Dizine üçüncü parent",
      "guestAcceptance": "Ret sonrası namespace sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_links_positive",
        "negativeName": "os_turkfs_namespace_links_negative",
        "expectedMarker": "TURKOS/OS/K1660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dosyaya iki ad ile Dizine üçüncü parent ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Dizine üçüncü parent” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1657"
    },
    {
      "id": "K1658",
      "number": 1658,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.links",
      "stage": "positive",
      "title": "Link sayısı ve dizin politikası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin hardlink ve sayaç taşması reddedilir.",
      "action": "os_turkfs_namespace_links_positive testini oluştur: “Dosyaya iki ad”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Dizin hardlink ve sayaç taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_links"
      },
      "dependencies": [
        "K1657"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosyaya iki ad",
      "counterexample": "Dizine üçüncü parent",
      "guestAcceptance": "Ret sonrası namespace sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_links_positive",
        "negativeName": "os_turkfs_namespace_links_negative",
        "expectedMarker": "TURKOS/OS/K1660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dosyaya iki ad girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Dizine üçüncü parent” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1658"
    },
    {
      "id": "K1659",
      "number": 1659,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.links",
      "stage": "negative",
      "title": "Link sayısı ve dizin politikası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin hardlink ve sayaç taşması reddedilir.",
      "action": "os_turkfs_namespace_links_negative testini oluştur: “Dizine üçüncü parent”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Dizin hardlink ve sayaç taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_links"
      },
      "dependencies": [
        "K1658"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosyaya iki ad",
      "counterexample": "Dizine üçüncü parent",
      "guestAcceptance": "Ret sonrası namespace sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_links_positive",
        "negativeName": "os_turkfs_namespace_links_negative",
        "expectedMarker": "TURKOS/OS/K1660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dizine üçüncü parent karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Dizine üçüncü parent” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1659"
    },
    {
      "id": "K1660",
      "number": 1660,
      "phase": 11,
      "module": "turkfs_namespace",
      "feature": "turkfs_namespace.links",
      "stage": "integration",
      "title": "Link sayısı ve dizin politikası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Dizin hardlink ve sayaç taşması reddedilir.",
      "action": "Tek ürün Image'ında “Ret sonrası namespace sabit” kabulünü koştur. scripts/os-acceptance/turkfs_namespace.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Dizin hardlink ve sayaç taşması reddedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_namespace.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_turkfs_namespace_links"
      },
      "dependencies": [
        "K1659"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Dosyaya iki ad",
      "counterexample": "Dizine üçüncü parent",
      "guestAcceptance": "Ret sonrası namespace sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_namespace.rs",
        "harness": "scripts/os-acceptance/turkfs_namespace.mjs",
        "positiveName": "os_turkfs_namespace_links_positive",
        "negativeName": "os_turkfs_namespace_links_negative",
        "expectedMarker": "TURKOS/OS/K1660: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sonrası namespace sabit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Dizine üçüncü parent” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1660"
    },
    {
      "id": "K1661",
      "number": 1661,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.format",
      "stage": "contract",
      "title": "Transaction başlık ve kayıt biçimi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kayıt boy sıra ve checksum birlikte geçer.",
      "action": "“Transaction başlık ve kayıt biçimi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kayıt boy sıra ve checksum birlikte geçer. “Üç metadata kaydı” kabulü ile “Kesik uzunluk veya eski sürüm” reddini aynı sözleşmeye bağla.",
      "invariant": "Kayıt boy sıra ve checksum birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_format"
      },
      "dependencies": [
        "K1660"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç metadata kaydı",
      "counterexample": "Kesik uzunluk veya eski sürüm",
      "guestAcceptance": "Bozuk journal mountta açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_format_positive",
        "negativeName": "os_turkfs_journal_format_negative",
        "expectedMarker": "TURKOS/OS/K1665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kayıt boy sıra ve checksum birlikte geçer kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kesik uzunluk veya eski sürüm” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1661"
    },
    {
      "id": "K1662",
      "number": 1662,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.format",
      "stage": "implementation",
      "title": "Transaction başlık ve kayıt biçimi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kayıt boy sıra ve checksum birlikte geçer.",
      "action": "kernel/src/runtime/turkfs_journal.rs hedefinde os_turkfs_journal_format yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kayıt boy sıra ve checksum birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_format"
      },
      "dependencies": [
        "K1661"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç metadata kaydı",
      "counterexample": "Kesik uzunluk veya eski sürüm",
      "guestAcceptance": "Bozuk journal mountta açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_format_positive",
        "negativeName": "os_turkfs_journal_format_negative",
        "expectedMarker": "TURKOS/OS/K1665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç metadata kaydı ile Kesik uzunluk veya eski sürüm ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kesik uzunluk veya eski sürüm” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1662"
    },
    {
      "id": "K1663",
      "number": 1663,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.format",
      "stage": "positive",
      "title": "Transaction başlık ve kayıt biçimi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kayıt boy sıra ve checksum birlikte geçer.",
      "action": "os_turkfs_journal_format_positive testini oluştur: “Üç metadata kaydı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kayıt boy sıra ve checksum birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_format"
      },
      "dependencies": [
        "K1662"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç metadata kaydı",
      "counterexample": "Kesik uzunluk veya eski sürüm",
      "guestAcceptance": "Bozuk journal mountta açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_format_positive",
        "negativeName": "os_turkfs_journal_format_negative",
        "expectedMarker": "TURKOS/OS/K1665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç metadata kaydı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kesik uzunluk veya eski sürüm” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1663"
    },
    {
      "id": "K1664",
      "number": 1664,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.format",
      "stage": "negative",
      "title": "Transaction başlık ve kayıt biçimi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kayıt boy sıra ve checksum birlikte geçer.",
      "action": "os_turkfs_journal_format_negative testini oluştur: “Kesik uzunluk veya eski sürüm”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kayıt boy sıra ve checksum birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_format"
      },
      "dependencies": [
        "K1663"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç metadata kaydı",
      "counterexample": "Kesik uzunluk veya eski sürüm",
      "guestAcceptance": "Bozuk journal mountta açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_format_positive",
        "negativeName": "os_turkfs_journal_format_negative",
        "expectedMarker": "TURKOS/OS/K1665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kesik uzunluk veya eski sürüm karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kesik uzunluk veya eski sürüm” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1664"
    },
    {
      "id": "K1665",
      "number": 1665,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.format",
      "stage": "integration",
      "title": "Transaction başlık ve kayıt biçimi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Kayıt boy sıra ve checksum birlikte geçer.",
      "action": "Tek ürün Image'ında “Bozuk journal mountta açık hata” kabulünü koştur. scripts/os-acceptance/turkfs_journal.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kayıt boy sıra ve checksum birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_format"
      },
      "dependencies": [
        "K1664"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Üç metadata kaydı",
      "counterexample": "Kesik uzunluk veya eski sürüm",
      "guestAcceptance": "Bozuk journal mountta açık hata",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_format_positive",
        "negativeName": "os_turkfs_journal_format_negative",
        "expectedMarker": "TURKOS/OS/K1665: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk journal mountta açık hata; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kesik uzunluk veya eski sürüm” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1665"
    },
    {
      "id": "K1666",
      "number": 1666,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.ordering",
      "stage": "contract",
      "title": "Veri journal commit sırası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Commit dayanıklılık sınırı açık kaydedilir.",
      "action": "“Veri journal commit sırası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Commit dayanıklılık sınırı açık kaydedilir. “Data flush log flush commit” kabulü ile “Commit önce metadata yayımlanır” reddini aynı sözleşmeye bağla.",
      "invariant": "Commit dayanıklılık sınırı açık kaydedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_ordering"
      },
      "dependencies": [
        "K1665"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Data flush log flush commit",
      "counterexample": "Commit önce metadata yayımlanır",
      "guestAcceptance": "Her OUT FLUSH sınırı aygıt izine bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_ordering_positive",
        "negativeName": "os_turkfs_journal_ordering_negative",
        "expectedMarker": "TURKOS/OS/K1670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Commit dayanıklılık sınırı açık kaydedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Commit önce metadata yayımlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1666"
    },
    {
      "id": "K1667",
      "number": 1667,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.ordering",
      "stage": "implementation",
      "title": "Veri journal commit sırası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Commit dayanıklılık sınırı açık kaydedilir.",
      "action": "kernel/src/runtime/turkfs_journal.rs hedefinde os_turkfs_journal_ordering yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Commit dayanıklılık sınırı açık kaydedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_ordering"
      },
      "dependencies": [
        "K1666"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Data flush log flush commit",
      "counterexample": "Commit önce metadata yayımlanır",
      "guestAcceptance": "Her OUT FLUSH sınırı aygıt izine bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_ordering_positive",
        "negativeName": "os_turkfs_journal_ordering_negative",
        "expectedMarker": "TURKOS/OS/K1670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Data flush log flush commit ile Commit önce metadata yayımlanır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Commit önce metadata yayımlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1667"
    },
    {
      "id": "K1668",
      "number": 1668,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.ordering",
      "stage": "positive",
      "title": "Veri journal commit sırası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Commit dayanıklılık sınırı açık kaydedilir.",
      "action": "os_turkfs_journal_ordering_positive testini oluştur: “Data flush log flush commit”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Commit dayanıklılık sınırı açık kaydedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_ordering"
      },
      "dependencies": [
        "K1667"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Data flush log flush commit",
      "counterexample": "Commit önce metadata yayımlanır",
      "guestAcceptance": "Her OUT FLUSH sınırı aygıt izine bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_ordering_positive",
        "negativeName": "os_turkfs_journal_ordering_negative",
        "expectedMarker": "TURKOS/OS/K1670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Data flush log flush commit girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Commit önce metadata yayımlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1668"
    },
    {
      "id": "K1669",
      "number": 1669,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.ordering",
      "stage": "negative",
      "title": "Veri journal commit sırası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Commit dayanıklılık sınırı açık kaydedilir.",
      "action": "os_turkfs_journal_ordering_negative testini oluştur: “Commit önce metadata yayımlanır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Commit dayanıklılık sınırı açık kaydedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_ordering"
      },
      "dependencies": [
        "K1668"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Data flush log flush commit",
      "counterexample": "Commit önce metadata yayımlanır",
      "guestAcceptance": "Her OUT FLUSH sınırı aygıt izine bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_ordering_positive",
        "negativeName": "os_turkfs_journal_ordering_negative",
        "expectedMarker": "TURKOS/OS/K1670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Commit önce metadata yayımlanır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Commit önce metadata yayımlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1669"
    },
    {
      "id": "K1670",
      "number": 1670,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.ordering",
      "stage": "integration",
      "title": "Veri journal commit sırası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Commit dayanıklılık sınırı açık kaydedilir.",
      "action": "Tek ürün Image'ında “Her OUT FLUSH sınırı aygıt izine bağlı” kabulünü koştur. scripts/os-acceptance/turkfs_journal.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Commit dayanıklılık sınırı açık kaydedilir",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_ordering"
      },
      "dependencies": [
        "K1669"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Data flush log flush commit",
      "counterexample": "Commit önce metadata yayımlanır",
      "guestAcceptance": "Her OUT FLUSH sınırı aygıt izine bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_ordering_positive",
        "negativeName": "os_turkfs_journal_ordering_negative",
        "expectedMarker": "TURKOS/OS/K1670: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her OUT FLUSH sınırı aygıt izine bağlı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Commit önce metadata yayımlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1670"
    },
    {
      "id": "K1671",
      "number": 1671,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.reservation",
      "stage": "contract",
      "title": "Journal alan rezervasyonu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yer yokken partial transaction yazılmaz.",
      "action": "“Journal alan rezervasyonu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yer yokken partial transaction yazılmaz. “Son tam transaction sığar” kabulü ile “Bir kayda daha yer yok” reddini aynı sözleşmeye bağla.",
      "invariant": "Yer yokken partial transaction yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_reservation"
      },
      "dependencies": [
        "K1670"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son tam transaction sığar",
      "counterexample": "Bir kayda daha yer yok",
      "guestAcceptance": "JOURNAL-FULL kaynak diski korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_reservation_positive",
        "negativeName": "os_turkfs_journal_reservation_negative",
        "expectedMarker": "TURKOS/OS/K1675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yer yokken partial transaction yazılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir kayda daha yer yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1671"
    },
    {
      "id": "K1672",
      "number": 1672,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.reservation",
      "stage": "implementation",
      "title": "Journal alan rezervasyonu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yer yokken partial transaction yazılmaz.",
      "action": "kernel/src/runtime/turkfs_journal.rs hedefinde os_turkfs_journal_reservation yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yer yokken partial transaction yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_reservation"
      },
      "dependencies": [
        "K1671"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son tam transaction sığar",
      "counterexample": "Bir kayda daha yer yok",
      "guestAcceptance": "JOURNAL-FULL kaynak diski korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_reservation_positive",
        "negativeName": "os_turkfs_journal_reservation_negative",
        "expectedMarker": "TURKOS/OS/K1675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Son tam transaction sığar ile Bir kayda daha yer yok ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir kayda daha yer yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1672"
    },
    {
      "id": "K1673",
      "number": 1673,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.reservation",
      "stage": "positive",
      "title": "Journal alan rezervasyonu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yer yokken partial transaction yazılmaz.",
      "action": "os_turkfs_journal_reservation_positive testini oluştur: “Son tam transaction sığar”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yer yokken partial transaction yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_reservation"
      },
      "dependencies": [
        "K1672"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son tam transaction sığar",
      "counterexample": "Bir kayda daha yer yok",
      "guestAcceptance": "JOURNAL-FULL kaynak diski korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_reservation_positive",
        "negativeName": "os_turkfs_journal_reservation_negative",
        "expectedMarker": "TURKOS/OS/K1675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Son tam transaction sığar girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir kayda daha yer yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1673"
    },
    {
      "id": "K1674",
      "number": 1674,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.reservation",
      "stage": "negative",
      "title": "Journal alan rezervasyonu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yer yokken partial transaction yazılmaz.",
      "action": "os_turkfs_journal_reservation_negative testini oluştur: “Bir kayda daha yer yok”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yer yokken partial transaction yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_reservation"
      },
      "dependencies": [
        "K1673"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son tam transaction sığar",
      "counterexample": "Bir kayda daha yer yok",
      "guestAcceptance": "JOURNAL-FULL kaynak diski korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_reservation_positive",
        "negativeName": "os_turkfs_journal_reservation_negative",
        "expectedMarker": "TURKOS/OS/K1675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir kayda daha yer yok karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir kayda daha yer yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1674"
    },
    {
      "id": "K1675",
      "number": 1675,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.reservation",
      "stage": "integration",
      "title": "Journal alan rezervasyonu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yer yokken partial transaction yazılmaz.",
      "action": "Tek ürün Image'ında “JOURNAL-FULL kaynak diski korur” kabulünü koştur. scripts/os-acceptance/turkfs_journal.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yer yokken partial transaction yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_reservation"
      },
      "dependencies": [
        "K1674"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Son tam transaction sığar",
      "counterexample": "Bir kayda daha yer yok",
      "guestAcceptance": "JOURNAL-FULL kaynak diski korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_reservation_positive",
        "negativeName": "os_turkfs_journal_reservation_negative",
        "expectedMarker": "TURKOS/OS/K1675: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "JOURNAL-FULL kaynak diski korur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir kayda daha yer yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1675"
    },
    {
      "id": "K1676",
      "number": 1676,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.checkpoint",
      "stage": "contract",
      "title": "Checkpoint ve journal geri dönüşümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Uygulanmamış kaydın üstüne yazılmaz.",
      "action": "“Checkpoint ve journal geri dönüşümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Uygulanmamış kaydın üstüne yazılmaz. “Metadata flush sonrası checkpoint” kabulü ile “Eski commit çok erken silinir” reddini aynı sözleşmeye bağla.",
      "invariant": "Uygulanmamış kaydın üstüne yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_checkpoint"
      },
      "dependencies": [
        "K1675"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Metadata flush sonrası checkpoint",
      "counterexample": "Eski commit çok erken silinir",
      "guestAcceptance": "Kesinti sonrası tekrar mount tanımlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_checkpoint_positive",
        "negativeName": "os_turkfs_journal_checkpoint_negative",
        "expectedMarker": "TURKOS/OS/K1680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Uygulanmamış kaydın üstüne yazılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski commit çok erken silinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1676"
    },
    {
      "id": "K1677",
      "number": 1677,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.checkpoint",
      "stage": "implementation",
      "title": "Checkpoint ve journal geri dönüşümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Uygulanmamış kaydın üstüne yazılmaz.",
      "action": "kernel/src/runtime/turkfs_journal.rs hedefinde os_turkfs_journal_checkpoint yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Uygulanmamış kaydın üstüne yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_checkpoint"
      },
      "dependencies": [
        "K1676"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Metadata flush sonrası checkpoint",
      "counterexample": "Eski commit çok erken silinir",
      "guestAcceptance": "Kesinti sonrası tekrar mount tanımlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_checkpoint_positive",
        "negativeName": "os_turkfs_journal_checkpoint_negative",
        "expectedMarker": "TURKOS/OS/K1680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Metadata flush sonrası checkpoint ile Eski commit çok erken silinir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski commit çok erken silinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1677"
    },
    {
      "id": "K1678",
      "number": 1678,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.checkpoint",
      "stage": "positive",
      "title": "Checkpoint ve journal geri dönüşümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Uygulanmamış kaydın üstüne yazılmaz.",
      "action": "os_turkfs_journal_checkpoint_positive testini oluştur: “Metadata flush sonrası checkpoint”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Uygulanmamış kaydın üstüne yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_checkpoint"
      },
      "dependencies": [
        "K1677"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Metadata flush sonrası checkpoint",
      "counterexample": "Eski commit çok erken silinir",
      "guestAcceptance": "Kesinti sonrası tekrar mount tanımlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_checkpoint_positive",
        "negativeName": "os_turkfs_journal_checkpoint_negative",
        "expectedMarker": "TURKOS/OS/K1680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Metadata flush sonrası checkpoint girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski commit çok erken silinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1678"
    },
    {
      "id": "K1679",
      "number": 1679,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.checkpoint",
      "stage": "negative",
      "title": "Checkpoint ve journal geri dönüşümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Uygulanmamış kaydın üstüne yazılmaz.",
      "action": "os_turkfs_journal_checkpoint_negative testini oluştur: “Eski commit çok erken silinir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Uygulanmamış kaydın üstüne yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_checkpoint"
      },
      "dependencies": [
        "K1678"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Metadata flush sonrası checkpoint",
      "counterexample": "Eski commit çok erken silinir",
      "guestAcceptance": "Kesinti sonrası tekrar mount tanımlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_checkpoint_positive",
        "negativeName": "os_turkfs_journal_checkpoint_negative",
        "expectedMarker": "TURKOS/OS/K1680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski commit çok erken silinir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski commit çok erken silinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1679"
    },
    {
      "id": "K1680",
      "number": 1680,
      "phase": 11,
      "module": "turkfs_journal",
      "feature": "turkfs_journal.checkpoint",
      "stage": "integration",
      "title": "Checkpoint ve journal geri dönüşümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Uygulanmamış kaydın üstüne yazılmaz.",
      "action": "Tek ürün Image'ında “Kesinti sonrası tekrar mount tanımlı” kabulünü koştur. scripts/os-acceptance/turkfs_journal.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Uygulanmamış kaydın üstüne yazılmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_journal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_journal_checkpoint"
      },
      "dependencies": [
        "K1679"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Metadata flush sonrası checkpoint",
      "counterexample": "Eski commit çok erken silinir",
      "guestAcceptance": "Kesinti sonrası tekrar mount tanımlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_journal.rs",
        "harness": "scripts/os-acceptance/turkfs_journal.mjs",
        "positiveName": "os_turkfs_journal_checkpoint_positive",
        "negativeName": "os_turkfs_journal_checkpoint_negative",
        "expectedMarker": "TURKOS/OS/K1680: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kesinti sonrası tekrar mount tanımlı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski commit çok erken silinir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1680"
    },
    {
      "id": "K1681",
      "number": 1681,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.replay",
      "stage": "contract",
      "title": "İdempotent çok kayıt replay · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: İkinci replay metadata ilerletmez.",
      "action": "“İdempotent çok kayıt replay” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İkinci replay metadata ilerletmez. “Tam commitli üç kayıt” kabulü ile “Eksik son commit” reddini aynı sözleşmeye bağla.",
      "invariant": "İkinci replay metadata ilerletmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_replay"
      },
      "dependencies": [
        "K1680"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Tam commitli üç kayıt",
      "counterexample": "Eksik son commit",
      "guestAcceptance": "Eski yeni hash kararı açık ve sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_replay_positive",
        "negativeName": "os_turkfs_recovery_replay_negative",
        "expectedMarker": "TURKOS/OS/K1685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İkinci replay metadata ilerletmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eksik son commit” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1681"
    },
    {
      "id": "K1682",
      "number": 1682,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.replay",
      "stage": "implementation",
      "title": "İdempotent çok kayıt replay · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: İkinci replay metadata ilerletmez.",
      "action": "kernel/src/runtime/turkfs_recovery.rs hedefinde os_turkfs_recovery_replay yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İkinci replay metadata ilerletmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_replay"
      },
      "dependencies": [
        "K1681"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Tam commitli üç kayıt",
      "counterexample": "Eksik son commit",
      "guestAcceptance": "Eski yeni hash kararı açık ve sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_replay_positive",
        "negativeName": "os_turkfs_recovery_replay_negative",
        "expectedMarker": "TURKOS/OS/K1685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Tam commitli üç kayıt ile Eksik son commit ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eksik son commit” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1682"
    },
    {
      "id": "K1683",
      "number": 1683,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.replay",
      "stage": "positive",
      "title": "İdempotent çok kayıt replay · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: İkinci replay metadata ilerletmez.",
      "action": "os_turkfs_recovery_replay_positive testini oluştur: “Tam commitli üç kayıt”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İkinci replay metadata ilerletmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_replay"
      },
      "dependencies": [
        "K1682"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Tam commitli üç kayıt",
      "counterexample": "Eksik son commit",
      "guestAcceptance": "Eski yeni hash kararı açık ve sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_replay_positive",
        "negativeName": "os_turkfs_recovery_replay_negative",
        "expectedMarker": "TURKOS/OS/K1685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Tam commitli üç kayıt girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eksik son commit” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1683"
    },
    {
      "id": "K1684",
      "number": 1684,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.replay",
      "stage": "negative",
      "title": "İdempotent çok kayıt replay · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: İkinci replay metadata ilerletmez.",
      "action": "os_turkfs_recovery_replay_negative testini oluştur: “Eksik son commit”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İkinci replay metadata ilerletmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_replay"
      },
      "dependencies": [
        "K1683"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Tam commitli üç kayıt",
      "counterexample": "Eksik son commit",
      "guestAcceptance": "Eski yeni hash kararı açık ve sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_replay_positive",
        "negativeName": "os_turkfs_recovery_replay_negative",
        "expectedMarker": "TURKOS/OS/K1685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik son commit karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eksik son commit” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1684"
    },
    {
      "id": "K1685",
      "number": 1685,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.replay",
      "stage": "integration",
      "title": "İdempotent çok kayıt replay · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: İkinci replay metadata ilerletmez.",
      "action": "Tek ürün Image'ında “Eski yeni hash kararı açık ve sabit” kabulünü koştur. scripts/os-acceptance/turkfs_recovery.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İkinci replay metadata ilerletmez",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_replay"
      },
      "dependencies": [
        "K1684"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Tam commitli üç kayıt",
      "counterexample": "Eksik son commit",
      "guestAcceptance": "Eski yeni hash kararı açık ve sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_replay_positive",
        "negativeName": "os_turkfs_recovery_replay_negative",
        "expectedMarker": "TURKOS/OS/K1685: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski yeni hash kararı açık ve sabit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eksik son commit” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1685"
    },
    {
      "id": "K1686",
      "number": 1686,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.second_cut",
      "stage": "contract",
      "title": "Replay sırasında ikinci kesinti · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Her replay write flush durağı sınıflanır.",
      "action": "“Replay sırasında ikinci kesinti” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her replay write flush durağı sınıflanır. “Yeniden kesilmiş geçici qcow2” kabulü ile “İkinci boot aynı cache kullanır” reddini aynı sözleşmeye bağla.",
      "invariant": "Her replay write flush durağı sınıflanır",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_second_cut"
      },
      "dependencies": [
        "K1685"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeniden kesilmiş geçici qcow2",
      "counterexample": "İkinci boot aynı cache kullanır",
      "guestAcceptance": "Yeni süreçte tekrar replay tutarlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_second_cut_positive",
        "negativeName": "os_turkfs_recovery_second_cut_negative",
        "expectedMarker": "TURKOS/OS/K1690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her replay write flush durağı sınıflanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İkinci boot aynı cache kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1686"
    },
    {
      "id": "K1687",
      "number": 1687,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.second_cut",
      "stage": "implementation",
      "title": "Replay sırasında ikinci kesinti · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Her replay write flush durağı sınıflanır.",
      "action": "kernel/src/runtime/turkfs_recovery.rs hedefinde os_turkfs_recovery_second_cut yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her replay write flush durağı sınıflanır",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_second_cut"
      },
      "dependencies": [
        "K1686"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeniden kesilmiş geçici qcow2",
      "counterexample": "İkinci boot aynı cache kullanır",
      "guestAcceptance": "Yeni süreçte tekrar replay tutarlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_second_cut_positive",
        "negativeName": "os_turkfs_recovery_second_cut_negative",
        "expectedMarker": "TURKOS/OS/K1690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yeniden kesilmiş geçici qcow2 ile İkinci boot aynı cache kullanır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İkinci boot aynı cache kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1687"
    },
    {
      "id": "K1688",
      "number": 1688,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.second_cut",
      "stage": "positive",
      "title": "Replay sırasında ikinci kesinti · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Her replay write flush durağı sınıflanır.",
      "action": "os_turkfs_recovery_second_cut_positive testini oluştur: “Yeniden kesilmiş geçici qcow2”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her replay write flush durağı sınıflanır",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_second_cut"
      },
      "dependencies": [
        "K1687"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeniden kesilmiş geçici qcow2",
      "counterexample": "İkinci boot aynı cache kullanır",
      "guestAcceptance": "Yeni süreçte tekrar replay tutarlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_second_cut_positive",
        "negativeName": "os_turkfs_recovery_second_cut_negative",
        "expectedMarker": "TURKOS/OS/K1690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yeniden kesilmiş geçici qcow2 girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İkinci boot aynı cache kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1688"
    },
    {
      "id": "K1689",
      "number": 1689,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.second_cut",
      "stage": "negative",
      "title": "Replay sırasında ikinci kesinti · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Her replay write flush durağı sınıflanır.",
      "action": "os_turkfs_recovery_second_cut_negative testini oluştur: “İkinci boot aynı cache kullanır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her replay write flush durağı sınıflanır",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_second_cut"
      },
      "dependencies": [
        "K1688"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeniden kesilmiş geçici qcow2",
      "counterexample": "İkinci boot aynı cache kullanır",
      "guestAcceptance": "Yeni süreçte tekrar replay tutarlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_second_cut_positive",
        "negativeName": "os_turkfs_recovery_second_cut_negative",
        "expectedMarker": "TURKOS/OS/K1690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İkinci boot aynı cache kullanır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İkinci boot aynı cache kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1689"
    },
    {
      "id": "K1690",
      "number": 1690,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.second_cut",
      "stage": "integration",
      "title": "Replay sırasında ikinci kesinti · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Her replay write flush durağı sınıflanır.",
      "action": "Tek ürün Image'ında “Yeni süreçte tekrar replay tutarlı” kabulünü koştur. scripts/os-acceptance/turkfs_recovery.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her replay write flush durağı sınıflanır",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_second_cut"
      },
      "dependencies": [
        "K1689"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Yeniden kesilmiş geçici qcow2",
      "counterexample": "İkinci boot aynı cache kullanır",
      "guestAcceptance": "Yeni süreçte tekrar replay tutarlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_second_cut_positive",
        "negativeName": "os_turkfs_recovery_second_cut_negative",
        "expectedMarker": "TURKOS/OS/K1690: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni süreçte tekrar replay tutarlı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İkinci boot aynı cache kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1690"
    },
    {
      "id": "K1691",
      "number": 1691,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.orphans",
      "stage": "contract",
      "title": "Sahipsiz blok fsck kararı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Bilinmeyen blok otomatik serbest kalmaz.",
      "action": "“Sahipsiz blok fsck kararı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bilinmeyen blok otomatik serbest kalmaz. “Bir yetim tahsisli blok” kabulü ile “Canlı extent orphan diye alınır” reddini aynı sözleşmeye bağla.",
      "invariant": "Bilinmeyen blok otomatik serbest kalmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_orphans"
      },
      "dependencies": [
        "K1690"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bir yetim tahsisli blok",
      "counterexample": "Canlı extent orphan diye alınır",
      "guestAcceptance": "RO fsck karar ve block hashini yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_orphans_positive",
        "negativeName": "os_turkfs_recovery_orphans_negative",
        "expectedMarker": "TURKOS/OS/K1695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bilinmeyen blok otomatik serbest kalmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Canlı extent orphan diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1691"
    },
    {
      "id": "K1692",
      "number": 1692,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.orphans",
      "stage": "implementation",
      "title": "Sahipsiz blok fsck kararı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Bilinmeyen blok otomatik serbest kalmaz.",
      "action": "kernel/src/runtime/turkfs_recovery.rs hedefinde os_turkfs_recovery_orphans yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bilinmeyen blok otomatik serbest kalmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_orphans"
      },
      "dependencies": [
        "K1691"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bir yetim tahsisli blok",
      "counterexample": "Canlı extent orphan diye alınır",
      "guestAcceptance": "RO fsck karar ve block hashini yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_orphans_positive",
        "negativeName": "os_turkfs_recovery_orphans_negative",
        "expectedMarker": "TURKOS/OS/K1695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir yetim tahsisli blok ile Canlı extent orphan diye alınır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Canlı extent orphan diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1692"
    },
    {
      "id": "K1693",
      "number": 1693,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.orphans",
      "stage": "positive",
      "title": "Sahipsiz blok fsck kararı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Bilinmeyen blok otomatik serbest kalmaz.",
      "action": "os_turkfs_recovery_orphans_positive testini oluştur: “Bir yetim tahsisli blok”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bilinmeyen blok otomatik serbest kalmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_orphans"
      },
      "dependencies": [
        "K1692"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bir yetim tahsisli blok",
      "counterexample": "Canlı extent orphan diye alınır",
      "guestAcceptance": "RO fsck karar ve block hashini yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_orphans_positive",
        "negativeName": "os_turkfs_recovery_orphans_negative",
        "expectedMarker": "TURKOS/OS/K1695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir yetim tahsisli blok girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Canlı extent orphan diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1693"
    },
    {
      "id": "K1694",
      "number": 1694,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.orphans",
      "stage": "negative",
      "title": "Sahipsiz blok fsck kararı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Bilinmeyen blok otomatik serbest kalmaz.",
      "action": "os_turkfs_recovery_orphans_negative testini oluştur: “Canlı extent orphan diye alınır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bilinmeyen blok otomatik serbest kalmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_orphans"
      },
      "dependencies": [
        "K1693"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bir yetim tahsisli blok",
      "counterexample": "Canlı extent orphan diye alınır",
      "guestAcceptance": "RO fsck karar ve block hashini yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_orphans_positive",
        "negativeName": "os_turkfs_recovery_orphans_negative",
        "expectedMarker": "TURKOS/OS/K1695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Canlı extent orphan diye alınır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Canlı extent orphan diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1694"
    },
    {
      "id": "K1695",
      "number": 1695,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.orphans",
      "stage": "integration",
      "title": "Sahipsiz blok fsck kararı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Bilinmeyen blok otomatik serbest kalmaz.",
      "action": "Tek ürün Image'ında “RO fsck karar ve block hashini yazar” kabulünü koştur. scripts/os-acceptance/turkfs_recovery.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bilinmeyen blok otomatik serbest kalmaz",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_orphans"
      },
      "dependencies": [
        "K1694"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Bir yetim tahsisli blok",
      "counterexample": "Canlı extent orphan diye alınır",
      "guestAcceptance": "RO fsck karar ve block hashini yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_orphans_positive",
        "negativeName": "os_turkfs_recovery_orphans_negative",
        "expectedMarker": "TURKOS/OS/K1695: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "RO fsck karar ve block hashini yazar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Canlı extent orphan diye alınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1695"
    },
    {
      "id": "K1696",
      "number": 1696,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.write_gate",
      "stage": "contract",
      "title": "Üretim yazma güvenlik kapısı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yerel crash testi bağımsız review değildir.",
      "action": "“Üretim yazma güvenlik kapısı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yerel crash testi bağımsız review değildir. “Geçici disk matrisi tamam” kabulü ile “K559 yokken production-write” reddini aynı sözleşmeye bağla.",
      "invariant": "Yerel crash testi bağımsız review değildir",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_write_gate"
      },
      "dependencies": [
        "K1695"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Geçici disk matrisi tamam",
      "counterexample": "K559 yokken production-write",
      "guestAcceptance": "Derleme engeli ve sınırlamalar korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_write_gate_positive",
        "negativeName": "os_turkfs_recovery_write_gate_negative",
        "expectedMarker": "TURKOS/OS/K1700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yerel crash testi bağımsız review değildir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“K559 yokken production-write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1696"
    },
    {
      "id": "K1697",
      "number": 1697,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.write_gate",
      "stage": "implementation",
      "title": "Üretim yazma güvenlik kapısı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yerel crash testi bağımsız review değildir.",
      "action": "kernel/src/runtime/turkfs_recovery.rs hedefinde os_turkfs_recovery_write_gate yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yerel crash testi bağımsız review değildir",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_write_gate"
      },
      "dependencies": [
        "K1696"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Geçici disk matrisi tamam",
      "counterexample": "K559 yokken production-write",
      "guestAcceptance": "Derleme engeli ve sınırlamalar korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_write_gate_positive",
        "negativeName": "os_turkfs_recovery_write_gate_negative",
        "expectedMarker": "TURKOS/OS/K1700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçici disk matrisi tamam ile K559 yokken production-write ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“K559 yokken production-write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1697"
    },
    {
      "id": "K1698",
      "number": 1698,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.write_gate",
      "stage": "positive",
      "title": "Üretim yazma güvenlik kapısı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yerel crash testi bağımsız review değildir.",
      "action": "os_turkfs_recovery_write_gate_positive testini oluştur: “Geçici disk matrisi tamam”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yerel crash testi bağımsız review değildir",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_write_gate"
      },
      "dependencies": [
        "K1697"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Geçici disk matrisi tamam",
      "counterexample": "K559 yokken production-write",
      "guestAcceptance": "Derleme engeli ve sınırlamalar korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_write_gate_positive",
        "negativeName": "os_turkfs_recovery_write_gate_negative",
        "expectedMarker": "TURKOS/OS/K1700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçici disk matrisi tamam girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“K559 yokken production-write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1698"
    },
    {
      "id": "K1699",
      "number": 1699,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.write_gate",
      "stage": "negative",
      "title": "Üretim yazma güvenlik kapısı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yerel crash testi bağımsız review değildir.",
      "action": "os_turkfs_recovery_write_gate_negative testini oluştur: “K559 yokken production-write”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yerel crash testi bağımsız review değildir",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_write_gate"
      },
      "dependencies": [
        "K1698"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Geçici disk matrisi tamam",
      "counterexample": "K559 yokken production-write",
      "guestAcceptance": "Derleme engeli ve sınırlamalar korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_write_gate_positive",
        "negativeName": "os_turkfs_recovery_write_gate_negative",
        "expectedMarker": "TURKOS/OS/K1700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "K559 yokken production-write karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“K559 yokken production-write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1699"
    },
    {
      "id": "K1700",
      "number": 1700,
      "phase": 11,
      "module": "turkfs_recovery",
      "feature": "turkfs_recovery.write_gate",
      "stage": "integration",
      "title": "Üretim yazma güvenlik kapısı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki sabit inode journal deneyi genel yazılabilir dosya sistemi değildir. Yeni işler yalnız geçici disklerde yapılır; K559 ve güç kaybı sınırı korunur. Bu hamlenin koruduğu değişmez: Yerel crash testi bağımsız review değildir.",
      "action": "Tek ürün Image'ında “Derleme engeli ve sınırlamalar korunur” kabulünü koştur. scripts/os-acceptance/turkfs_recovery.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yerel crash testi bağımsız review değildir",
      "source": {
        "target": "kernel/src/runtime/turkfs_recovery.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_turkfs_recovery_write_gate"
      },
      "dependencies": [
        "K1699"
      ],
      "phasePrerequisites": [
        10
      ],
      "positive": "Geçici disk matrisi tamam",
      "counterexample": "K559 yokken production-write",
      "guestAcceptance": "Derleme engeli ve sınırlamalar korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/turkfs_recovery.rs",
        "harness": "scripts/os-acceptance/turkfs_recovery.mjs",
        "positiveName": "os_turkfs_recovery_write_gate_positive",
        "negativeName": "os_turkfs_recovery_write_gate_negative",
        "expectedMarker": "TURKOS/OS/K1700: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Derleme engeli ve sınırlamalar korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“K559 yokken production-write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-11#k1700"
    },
    {
      "id": "K1701",
      "number": 1701,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.headers",
      "stage": "contract",
      "title": "ELF program header aralığı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Offset count stride dosya boyuyla sınırlıdır.",
      "action": "“ELF program header aralığı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Offset count stride dosya boyuyla sınırlıdır. “Üç geçerli PT_LOAD” kabulü ile “Header tablosu overflow” reddini aynı sözleşmeye bağla.",
      "invariant": "Offset count stride dosya boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_headers"
      },
      "dependencies": [],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç geçerli PT_LOAD",
      "counterexample": "Header tablosu overflow",
      "guestAcceptance": "Bozuk dosya map yayımlamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_headers_positive",
        "negativeName": "os_elf_loader_headers_negative",
        "expectedMarker": "TURKOS/OS/K1705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Offset count stride dosya boyuyla sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Header tablosu overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1701"
    },
    {
      "id": "K1702",
      "number": 1702,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.headers",
      "stage": "implementation",
      "title": "ELF program header aralığı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Offset count stride dosya boyuyla sınırlıdır.",
      "action": "kernel/src/runtime/elf_loader.rs hedefinde os_elf_loader_headers yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/elf.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Offset count stride dosya boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_headers"
      },
      "dependencies": [
        "K1701"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç geçerli PT_LOAD",
      "counterexample": "Header tablosu overflow",
      "guestAcceptance": "Bozuk dosya map yayımlamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_headers_positive",
        "negativeName": "os_elf_loader_headers_negative",
        "expectedMarker": "TURKOS/OS/K1705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç geçerli PT_LOAD ile Header tablosu overflow ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Header tablosu overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1702"
    },
    {
      "id": "K1703",
      "number": 1703,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.headers",
      "stage": "positive",
      "title": "ELF program header aralığı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Offset count stride dosya boyuyla sınırlıdır.",
      "action": "os_elf_loader_headers_positive testini oluştur: “Üç geçerli PT_LOAD”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Offset count stride dosya boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_headers"
      },
      "dependencies": [
        "K1702"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç geçerli PT_LOAD",
      "counterexample": "Header tablosu overflow",
      "guestAcceptance": "Bozuk dosya map yayımlamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_headers_positive",
        "negativeName": "os_elf_loader_headers_negative",
        "expectedMarker": "TURKOS/OS/K1705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç geçerli PT_LOAD girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Header tablosu overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1703"
    },
    {
      "id": "K1704",
      "number": 1704,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.headers",
      "stage": "negative",
      "title": "ELF program header aralığı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Offset count stride dosya boyuyla sınırlıdır.",
      "action": "os_elf_loader_headers_negative testini oluştur: “Header tablosu overflow”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Offset count stride dosya boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_headers"
      },
      "dependencies": [
        "K1703"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç geçerli PT_LOAD",
      "counterexample": "Header tablosu overflow",
      "guestAcceptance": "Bozuk dosya map yayımlamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_headers_positive",
        "negativeName": "os_elf_loader_headers_negative",
        "expectedMarker": "TURKOS/OS/K1705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Header tablosu overflow karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Header tablosu overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1704"
    },
    {
      "id": "K1705",
      "number": 1705,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.headers",
      "stage": "integration",
      "title": "ELF program header aralığı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Offset count stride dosya boyuyla sınırlıdır.",
      "action": "Tek ürün Image'ında “Bozuk dosya map yayımlamaz” kabulünü koştur. scripts/os-acceptance/elf_loader.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Offset count stride dosya boyuyla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_headers"
      },
      "dependencies": [
        "K1704"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç geçerli PT_LOAD",
      "counterexample": "Header tablosu overflow",
      "guestAcceptance": "Bozuk dosya map yayımlamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_headers_positive",
        "negativeName": "os_elf_loader_headers_negative",
        "expectedMarker": "TURKOS/OS/K1705: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk dosya map yayımlamaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Header tablosu overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1705"
    },
    {
      "id": "K1706",
      "number": 1706,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.segments",
      "stage": "contract",
      "title": "ELF RX RO RW segmentleri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Her segment W xor X ve ayrık VAdadır.",
      "action": "“ELF RX RO RW segmentleri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her segment W xor X ve ayrık VAdadır. “Kod rodata veri BSS” kabulü ile “RWX segment veya örtüşme” reddini aynı sözleşmeye bağla.",
      "invariant": "Her segment W xor X ve ayrık VAdadır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_segments"
      },
      "dependencies": [
        "K1705"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod rodata veri BSS",
      "counterexample": "RWX segment veya örtüşme",
      "guestAcceptance": "Gerçek program doğru izinlerle çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_segments_positive",
        "negativeName": "os_elf_loader_segments_negative",
        "expectedMarker": "TURKOS/OS/K1710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her segment W xor X ve ayrık VAdadır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“RWX segment veya örtüşme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1706"
    },
    {
      "id": "K1707",
      "number": 1707,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.segments",
      "stage": "implementation",
      "title": "ELF RX RO RW segmentleri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Her segment W xor X ve ayrık VAdadır.",
      "action": "kernel/src/runtime/elf_loader.rs hedefinde os_elf_loader_segments yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/elf.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her segment W xor X ve ayrık VAdadır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_segments"
      },
      "dependencies": [
        "K1706"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod rodata veri BSS",
      "counterexample": "RWX segment veya örtüşme",
      "guestAcceptance": "Gerçek program doğru izinlerle çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_segments_positive",
        "negativeName": "os_elf_loader_segments_negative",
        "expectedMarker": "TURKOS/OS/K1710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kod rodata veri BSS ile RWX segment veya örtüşme ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“RWX segment veya örtüşme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1707"
    },
    {
      "id": "K1708",
      "number": 1708,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.segments",
      "stage": "positive",
      "title": "ELF RX RO RW segmentleri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Her segment W xor X ve ayrık VAdadır.",
      "action": "os_elf_loader_segments_positive testini oluştur: “Kod rodata veri BSS”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her segment W xor X ve ayrık VAdadır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_segments"
      },
      "dependencies": [
        "K1707"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod rodata veri BSS",
      "counterexample": "RWX segment veya örtüşme",
      "guestAcceptance": "Gerçek program doğru izinlerle çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_segments_positive",
        "negativeName": "os_elf_loader_segments_negative",
        "expectedMarker": "TURKOS/OS/K1710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kod rodata veri BSS girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“RWX segment veya örtüşme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1708"
    },
    {
      "id": "K1709",
      "number": 1709,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.segments",
      "stage": "negative",
      "title": "ELF RX RO RW segmentleri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Her segment W xor X ve ayrık VAdadır.",
      "action": "os_elf_loader_segments_negative testini oluştur: “RWX segment veya örtüşme”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her segment W xor X ve ayrık VAdadır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_segments"
      },
      "dependencies": [
        "K1708"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod rodata veri BSS",
      "counterexample": "RWX segment veya örtüşme",
      "guestAcceptance": "Gerçek program doğru izinlerle çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_segments_positive",
        "negativeName": "os_elf_loader_segments_negative",
        "expectedMarker": "TURKOS/OS/K1710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "RWX segment veya örtüşme karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“RWX segment veya örtüşme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1709"
    },
    {
      "id": "K1710",
      "number": 1710,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.segments",
      "stage": "integration",
      "title": "ELF RX RO RW segmentleri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Her segment W xor X ve ayrık VAdadır.",
      "action": "Tek ürün Image'ında “Gerçek program doğru izinlerle çalışır” kabulünü koştur. scripts/os-acceptance/elf_loader.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her segment W xor X ve ayrık VAdadır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_segments"
      },
      "dependencies": [
        "K1709"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod rodata veri BSS",
      "counterexample": "RWX segment veya örtüşme",
      "guestAcceptance": "Gerçek program doğru izinlerle çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_segments_positive",
        "negativeName": "os_elf_loader_segments_negative",
        "expectedMarker": "TURKOS/OS/K1710: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Gerçek program doğru izinlerle çalışır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“RWX segment veya örtüşme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1710"
    },
    {
      "id": "K1711",
      "number": 1711,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.bss",
      "stage": "contract",
      "title": "BSS ve kısmi sayfa sıfırlama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: File dışı byte yeni kullanıcıya sıfırdır.",
      "action": "“BSS ve kısmi sayfa sıfırlama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: File dışı byte yeni kullanıcıya sıfırdır. “Son sayfada 17 file byte” kabulü ile “BSS önceki dosya sırrını taşır” reddini aynı sözleşmeye bağla.",
      "invariant": "File dışı byte yeni kullanıcıya sıfırdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_bss"
      },
      "dependencies": [
        "K1710"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Son sayfada 17 file byte",
      "counterexample": "BSS önceki dosya sırrını taşır",
      "guestAcceptance": "Kullanıcı bütün BSSyi sıfır okur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_bss_positive",
        "negativeName": "os_elf_loader_bss_negative",
        "expectedMarker": "TURKOS/OS/K1715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu File dışı byte yeni kullanıcıya sıfırdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“BSS önceki dosya sırrını taşır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1711"
    },
    {
      "id": "K1712",
      "number": 1712,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.bss",
      "stage": "implementation",
      "title": "BSS ve kısmi sayfa sıfırlama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: File dışı byte yeni kullanıcıya sıfırdır.",
      "action": "kernel/src/runtime/elf_loader.rs hedefinde os_elf_loader_bss yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/elf.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "File dışı byte yeni kullanıcıya sıfırdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_bss"
      },
      "dependencies": [
        "K1711"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Son sayfada 17 file byte",
      "counterexample": "BSS önceki dosya sırrını taşır",
      "guestAcceptance": "Kullanıcı bütün BSSyi sıfır okur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_bss_positive",
        "negativeName": "os_elf_loader_bss_negative",
        "expectedMarker": "TURKOS/OS/K1715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Son sayfada 17 file byte ile BSS önceki dosya sırrını taşır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“BSS önceki dosya sırrını taşır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1712"
    },
    {
      "id": "K1713",
      "number": 1713,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.bss",
      "stage": "positive",
      "title": "BSS ve kısmi sayfa sıfırlama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: File dışı byte yeni kullanıcıya sıfırdır.",
      "action": "os_elf_loader_bss_positive testini oluştur: “Son sayfada 17 file byte”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "File dışı byte yeni kullanıcıya sıfırdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_bss"
      },
      "dependencies": [
        "K1712"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Son sayfada 17 file byte",
      "counterexample": "BSS önceki dosya sırrını taşır",
      "guestAcceptance": "Kullanıcı bütün BSSyi sıfır okur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_bss_positive",
        "negativeName": "os_elf_loader_bss_negative",
        "expectedMarker": "TURKOS/OS/K1715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Son sayfada 17 file byte girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“BSS önceki dosya sırrını taşır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1713"
    },
    {
      "id": "K1714",
      "number": 1714,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.bss",
      "stage": "negative",
      "title": "BSS ve kısmi sayfa sıfırlama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: File dışı byte yeni kullanıcıya sıfırdır.",
      "action": "os_elf_loader_bss_negative testini oluştur: “BSS önceki dosya sırrını taşır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "File dışı byte yeni kullanıcıya sıfırdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_bss"
      },
      "dependencies": [
        "K1713"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Son sayfada 17 file byte",
      "counterexample": "BSS önceki dosya sırrını taşır",
      "guestAcceptance": "Kullanıcı bütün BSSyi sıfır okur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_bss_positive",
        "negativeName": "os_elf_loader_bss_negative",
        "expectedMarker": "TURKOS/OS/K1715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "BSS önceki dosya sırrını taşır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“BSS önceki dosya sırrını taşır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1714"
    },
    {
      "id": "K1715",
      "number": 1715,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.bss",
      "stage": "integration",
      "title": "BSS ve kısmi sayfa sıfırlama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: File dışı byte yeni kullanıcıya sıfırdır.",
      "action": "Tek ürün Image'ında “Kullanıcı bütün BSSyi sıfır okur” kabulünü koştur. scripts/os-acceptance/elf_loader.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "File dışı byte yeni kullanıcıya sıfırdır",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_bss"
      },
      "dependencies": [
        "K1714"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Son sayfada 17 file byte",
      "counterexample": "BSS önceki dosya sırrını taşır",
      "guestAcceptance": "Kullanıcı bütün BSSyi sıfır okur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_bss_positive",
        "negativeName": "os_elf_loader_bss_negative",
        "expectedMarker": "TURKOS/OS/K1715: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kullanıcı bütün BSSyi sıfır okur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“BSS önceki dosya sırrını taşır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1715"
    },
    {
      "id": "K1716",
      "number": 1716,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.entry",
      "stage": "contract",
      "title": "ELF entry doğrulama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Entry gerçek RX file aralığı içindedir.",
      "action": "“ELF entry doğrulama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Entry gerçek RX file aralığı içindedir. “Kod içinde hizalı entry” kabulü ile “BSSye veya kernel VAdan entry” reddini aynı sözleşmeye bağla.",
      "invariant": "Entry gerçek RX file aralığı içindedir",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_entry"
      },
      "dependencies": [
        "K1715"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod içinde hizalı entry",
      "counterexample": "BSSye veya kernel VAdan entry",
      "guestAcceptance": "Exec ERETten önce ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_entry_positive",
        "negativeName": "os_elf_loader_entry_negative",
        "expectedMarker": "TURKOS/OS/K1720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Entry gerçek RX file aralığı içindedir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“BSSye veya kernel VAdan entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1716"
    },
    {
      "id": "K1717",
      "number": 1717,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.entry",
      "stage": "implementation",
      "title": "ELF entry doğrulama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Entry gerçek RX file aralığı içindedir.",
      "action": "kernel/src/runtime/elf_loader.rs hedefinde os_elf_loader_entry yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/elf.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Entry gerçek RX file aralığı içindedir",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_entry"
      },
      "dependencies": [
        "K1716"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod içinde hizalı entry",
      "counterexample": "BSSye veya kernel VAdan entry",
      "guestAcceptance": "Exec ERETten önce ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_entry_positive",
        "negativeName": "os_elf_loader_entry_negative",
        "expectedMarker": "TURKOS/OS/K1720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kod içinde hizalı entry ile BSSye veya kernel VAdan entry ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“BSSye veya kernel VAdan entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1717"
    },
    {
      "id": "K1718",
      "number": 1718,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.entry",
      "stage": "positive",
      "title": "ELF entry doğrulama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Entry gerçek RX file aralığı içindedir.",
      "action": "os_elf_loader_entry_positive testini oluştur: “Kod içinde hizalı entry”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Entry gerçek RX file aralığı içindedir",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_entry"
      },
      "dependencies": [
        "K1717"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod içinde hizalı entry",
      "counterexample": "BSSye veya kernel VAdan entry",
      "guestAcceptance": "Exec ERETten önce ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_entry_positive",
        "negativeName": "os_elf_loader_entry_negative",
        "expectedMarker": "TURKOS/OS/K1720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kod içinde hizalı entry girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“BSSye veya kernel VAdan entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1718"
    },
    {
      "id": "K1719",
      "number": 1719,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.entry",
      "stage": "negative",
      "title": "ELF entry doğrulama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Entry gerçek RX file aralığı içindedir.",
      "action": "os_elf_loader_entry_negative testini oluştur: “BSSye veya kernel VAdan entry”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Entry gerçek RX file aralığı içindedir",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_entry"
      },
      "dependencies": [
        "K1718"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod içinde hizalı entry",
      "counterexample": "BSSye veya kernel VAdan entry",
      "guestAcceptance": "Exec ERETten önce ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_entry_positive",
        "negativeName": "os_elf_loader_entry_negative",
        "expectedMarker": "TURKOS/OS/K1720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "BSSye veya kernel VAdan entry karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“BSSye veya kernel VAdan entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1719"
    },
    {
      "id": "K1720",
      "number": 1720,
      "phase": 12,
      "module": "elf_loader",
      "feature": "elf_loader.entry",
      "stage": "integration",
      "title": "ELF entry doğrulama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Entry gerçek RX file aralığı içindedir.",
      "action": "Tek ürün Image'ında “Exec ERETten önce ret verir” kabulünü koştur. scripts/os-acceptance/elf_loader.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Entry gerçek RX file aralığı içindedir",
      "source": {
        "target": "kernel/src/runtime/elf_loader.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/elf.rs",
        "existingReferenceSha256": "9799cd2ac6a5c76b1f56284df853d269333f7f6d56cdabc410146070d98ab00e",
        "symbol": "os_elf_loader_entry"
      },
      "dependencies": [
        "K1719"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Kod içinde hizalı entry",
      "counterexample": "BSSye veya kernel VAdan entry",
      "guestAcceptance": "Exec ERETten önce ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/elf_loader.rs",
        "harness": "scripts/os-acceptance/elf_loader.mjs",
        "positiveName": "os_elf_loader_entry_positive",
        "negativeName": "os_elf_loader_entry_negative",
        "expectedMarker": "TURKOS/OS/K1720: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Exec ERETten önce ret verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“BSSye veya kernel VAdan entry” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1720"
    },
    {
      "id": "K1721",
      "number": 1721,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.heap_region",
      "stage": "contract",
      "title": "Süreç heap bölgesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Büyüme stack guard ve maplere çarpmaz.",
      "action": "“Süreç heap bölgesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Büyüme stack guard ve maplere çarpmaz. “Bir sonra sekiz sayfa” kabulü ile “Heap stack içine büyür” reddini aynı sözleşmeye bağla.",
      "invariant": "Büyüme stack guard ve maplere çarpmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_heap_region"
      },
      "dependencies": [
        "K1720"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir sonra sekiz sayfa",
      "counterexample": "Heap stack içine büyür",
      "guestAcceptance": "ENOMEM eski heap boyunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_heap_region_positive",
        "negativeName": "os_user_heap_heap_region_negative",
        "expectedMarker": "TURKOS/OS/K1725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Büyüme stack guard ve maplere çarpmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Heap stack içine büyür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1721"
    },
    {
      "id": "K1722",
      "number": 1722,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.heap_region",
      "stage": "implementation",
      "title": "Süreç heap bölgesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Büyüme stack guard ve maplere çarpmaz.",
      "action": "kernel/src/runtime/user_heap.rs hedefinde os_user_heap_heap_region yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/heap.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Büyüme stack guard ve maplere çarpmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_heap_region"
      },
      "dependencies": [
        "K1721"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir sonra sekiz sayfa",
      "counterexample": "Heap stack içine büyür",
      "guestAcceptance": "ENOMEM eski heap boyunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_heap_region_positive",
        "negativeName": "os_user_heap_heap_region_negative",
        "expectedMarker": "TURKOS/OS/K1725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir sonra sekiz sayfa ile Heap stack içine büyür ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Heap stack içine büyür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1722"
    },
    {
      "id": "K1723",
      "number": 1723,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.heap_region",
      "stage": "positive",
      "title": "Süreç heap bölgesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Büyüme stack guard ve maplere çarpmaz.",
      "action": "os_user_heap_heap_region_positive testini oluştur: “Bir sonra sekiz sayfa”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Büyüme stack guard ve maplere çarpmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_heap_region"
      },
      "dependencies": [
        "K1722"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir sonra sekiz sayfa",
      "counterexample": "Heap stack içine büyür",
      "guestAcceptance": "ENOMEM eski heap boyunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_heap_region_positive",
        "negativeName": "os_user_heap_heap_region_negative",
        "expectedMarker": "TURKOS/OS/K1725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir sonra sekiz sayfa girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Heap stack içine büyür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1723"
    },
    {
      "id": "K1724",
      "number": 1724,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.heap_region",
      "stage": "negative",
      "title": "Süreç heap bölgesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Büyüme stack guard ve maplere çarpmaz.",
      "action": "os_user_heap_heap_region_negative testini oluştur: “Heap stack içine büyür”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Büyüme stack guard ve maplere çarpmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_heap_region"
      },
      "dependencies": [
        "K1723"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir sonra sekiz sayfa",
      "counterexample": "Heap stack içine büyür",
      "guestAcceptance": "ENOMEM eski heap boyunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_heap_region_positive",
        "negativeName": "os_user_heap_heap_region_negative",
        "expectedMarker": "TURKOS/OS/K1725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Heap stack içine büyür karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Heap stack içine büyür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1724"
    },
    {
      "id": "K1725",
      "number": 1725,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.heap_region",
      "stage": "integration",
      "title": "Süreç heap bölgesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Büyüme stack guard ve maplere çarpmaz.",
      "action": "Tek ürün Image'ında “ENOMEM eski heap boyunu korur” kabulünü koştur. scripts/os-acceptance/user_heap.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Büyüme stack guard ve maplere çarpmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_heap_region"
      },
      "dependencies": [
        "K1724"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir sonra sekiz sayfa",
      "counterexample": "Heap stack içine büyür",
      "guestAcceptance": "ENOMEM eski heap boyunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_heap_region_positive",
        "negativeName": "os_user_heap_heap_region_negative",
        "expectedMarker": "TURKOS/OS/K1725: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ENOMEM eski heap boyunu korur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Heap stack içine büyür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1725"
    },
    {
      "id": "K1726",
      "number": 1726,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.allocation",
      "stage": "contract",
      "title": "Kullanıcı nesne API · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Süreç kendi allocator metadata sahibidir.",
      "action": "“Kullanıcı nesne API” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Süreç kendi allocator metadata sahibidir. “Farklı boy üç nesne” kabulü ile “Başka süreç pointer free” reddini aynı sözleşmeye bağla.",
      "invariant": "Süreç kendi allocator metadata sahibidir",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_allocation"
      },
      "dependencies": [
        "K1725"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Farklı boy üç nesne",
      "counterexample": "Başka süreç pointer free",
      "guestAcceptance": "EFAULT veya allocator ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_allocation_positive",
        "negativeName": "os_user_heap_allocation_negative",
        "expectedMarker": "TURKOS/OS/K1730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Süreç kendi allocator metadata sahibidir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Başka süreç pointer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1726"
    },
    {
      "id": "K1727",
      "number": 1727,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.allocation",
      "stage": "implementation",
      "title": "Kullanıcı nesne API · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Süreç kendi allocator metadata sahibidir.",
      "action": "kernel/src/runtime/user_heap.rs hedefinde os_user_heap_allocation yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/heap.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Süreç kendi allocator metadata sahibidir",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_allocation"
      },
      "dependencies": [
        "K1726"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Farklı boy üç nesne",
      "counterexample": "Başka süreç pointer free",
      "guestAcceptance": "EFAULT veya allocator ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_allocation_positive",
        "negativeName": "os_user_heap_allocation_negative",
        "expectedMarker": "TURKOS/OS/K1730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Farklı boy üç nesne ile Başka süreç pointer free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Başka süreç pointer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1727"
    },
    {
      "id": "K1728",
      "number": 1728,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.allocation",
      "stage": "positive",
      "title": "Kullanıcı nesne API · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Süreç kendi allocator metadata sahibidir.",
      "action": "os_user_heap_allocation_positive testini oluştur: “Farklı boy üç nesne”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Süreç kendi allocator metadata sahibidir",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_allocation"
      },
      "dependencies": [
        "K1727"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Farklı boy üç nesne",
      "counterexample": "Başka süreç pointer free",
      "guestAcceptance": "EFAULT veya allocator ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_allocation_positive",
        "negativeName": "os_user_heap_allocation_negative",
        "expectedMarker": "TURKOS/OS/K1730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Farklı boy üç nesne girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Başka süreç pointer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1728"
    },
    {
      "id": "K1729",
      "number": 1729,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.allocation",
      "stage": "negative",
      "title": "Kullanıcı nesne API · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Süreç kendi allocator metadata sahibidir.",
      "action": "os_user_heap_allocation_negative testini oluştur: “Başka süreç pointer free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Süreç kendi allocator metadata sahibidir",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_allocation"
      },
      "dependencies": [
        "K1728"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Farklı boy üç nesne",
      "counterexample": "Başka süreç pointer free",
      "guestAcceptance": "EFAULT veya allocator ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_allocation_positive",
        "negativeName": "os_user_heap_allocation_negative",
        "expectedMarker": "TURKOS/OS/K1730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başka süreç pointer free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Başka süreç pointer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1729"
    },
    {
      "id": "K1730",
      "number": 1730,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.allocation",
      "stage": "integration",
      "title": "Kullanıcı nesne API · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Süreç kendi allocator metadata sahibidir.",
      "action": "Tek ürün Image'ında “EFAULT veya allocator ret” kabulünü koştur. scripts/os-acceptance/user_heap.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Süreç kendi allocator metadata sahibidir",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_allocation"
      },
      "dependencies": [
        "K1729"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Farklı boy üç nesne",
      "counterexample": "Başka süreç pointer free",
      "guestAcceptance": "EFAULT veya allocator ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_allocation_positive",
        "negativeName": "os_user_heap_allocation_negative",
        "expectedMarker": "TURKOS/OS/K1730: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EFAULT veya allocator ret; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Başka süreç pointer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1730"
    },
    {
      "id": "K1731",
      "number": 1731,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.stack_limits",
      "stage": "contract",
      "title": "Thread başına kullanıcı stack · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Stackler guard ve quota ile ayrıdır.",
      "action": "“Thread başına kullanıcı stack” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Stackler guard ve quota ile ayrıdır. “Aynı süreçte iki thread” kabulü ile “İki stack backing örtüşür” reddini aynı sözleşmeye bağla.",
      "invariant": "Stackler guard ve quota ile ayrıdır",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_stack_limits"
      },
      "dependencies": [
        "K1730"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Aynı süreçte iki thread",
      "counterexample": "İki stack backing örtüşür",
      "guestAcceptance": "Thread yığınları birbirini değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_stack_limits_positive",
        "negativeName": "os_user_heap_stack_limits_negative",
        "expectedMarker": "TURKOS/OS/K1735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Stackler guard ve quota ile ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki stack backing örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1731"
    },
    {
      "id": "K1732",
      "number": 1732,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.stack_limits",
      "stage": "implementation",
      "title": "Thread başına kullanıcı stack · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Stackler guard ve quota ile ayrıdır.",
      "action": "kernel/src/runtime/user_heap.rs hedefinde os_user_heap_stack_limits yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/heap.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Stackler guard ve quota ile ayrıdır",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_stack_limits"
      },
      "dependencies": [
        "K1731"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Aynı süreçte iki thread",
      "counterexample": "İki stack backing örtüşür",
      "guestAcceptance": "Thread yığınları birbirini değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_stack_limits_positive",
        "negativeName": "os_user_heap_stack_limits_negative",
        "expectedMarker": "TURKOS/OS/K1735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı süreçte iki thread ile İki stack backing örtüşür ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki stack backing örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1732"
    },
    {
      "id": "K1733",
      "number": 1733,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.stack_limits",
      "stage": "positive",
      "title": "Thread başına kullanıcı stack · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Stackler guard ve quota ile ayrıdır.",
      "action": "os_user_heap_stack_limits_positive testini oluştur: “Aynı süreçte iki thread”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Stackler guard ve quota ile ayrıdır",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_stack_limits"
      },
      "dependencies": [
        "K1732"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Aynı süreçte iki thread",
      "counterexample": "İki stack backing örtüşür",
      "guestAcceptance": "Thread yığınları birbirini değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_stack_limits_positive",
        "negativeName": "os_user_heap_stack_limits_negative",
        "expectedMarker": "TURKOS/OS/K1735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı süreçte iki thread girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki stack backing örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1733"
    },
    {
      "id": "K1734",
      "number": 1734,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.stack_limits",
      "stage": "negative",
      "title": "Thread başına kullanıcı stack · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Stackler guard ve quota ile ayrıdır.",
      "action": "os_user_heap_stack_limits_negative testini oluştur: “İki stack backing örtüşür”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Stackler guard ve quota ile ayrıdır",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_stack_limits"
      },
      "dependencies": [
        "K1733"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Aynı süreçte iki thread",
      "counterexample": "İki stack backing örtüşür",
      "guestAcceptance": "Thread yığınları birbirini değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_stack_limits_positive",
        "negativeName": "os_user_heap_stack_limits_negative",
        "expectedMarker": "TURKOS/OS/K1735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki stack backing örtüşür karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki stack backing örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1734"
    },
    {
      "id": "K1735",
      "number": 1735,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.stack_limits",
      "stage": "integration",
      "title": "Thread başına kullanıcı stack · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Stackler guard ve quota ile ayrıdır.",
      "action": "Tek ürün Image'ında “Thread yığınları birbirini değiştirmez” kabulünü koştur. scripts/os-acceptance/user_heap.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Stackler guard ve quota ile ayrıdır",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_stack_limits"
      },
      "dependencies": [
        "K1734"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Aynı süreçte iki thread",
      "counterexample": "İki stack backing örtüşür",
      "guestAcceptance": "Thread yığınları birbirini değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_stack_limits_positive",
        "negativeName": "os_user_heap_stack_limits_negative",
        "expectedMarker": "TURKOS/OS/K1735: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Thread yığınları birbirini değiştirmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki stack backing örtüşür” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1735"
    },
    {
      "id": "K1736",
      "number": 1736,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.reclaim",
      "stage": "contract",
      "title": "Kullanıcı heap geri kazanımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Aktif map pinleri bitmeden frame bırakılmaz.",
      "action": "“Kullanıcı heap geri kazanımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aktif map pinleri bitmeden frame bırakılmaz. “Serbest nesnelerle boş sayfa” kabulü ile “Pinli buffer sayfasını shrink” reddini aynı sözleşmeye bağla.",
      "invariant": "Aktif map pinleri bitmeden frame bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_reclaim"
      },
      "dependencies": [
        "K1735"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Serbest nesnelerle boş sayfa",
      "counterexample": "Pinli buffer sayfasını shrink",
      "guestAcceptance": "Kopya tamamlanınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_reclaim_positive",
        "negativeName": "os_user_heap_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K1740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aktif map pinleri bitmeden frame bırakılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Pinli buffer sayfasını shrink” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1736"
    },
    {
      "id": "K1737",
      "number": 1737,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.reclaim",
      "stage": "implementation",
      "title": "Kullanıcı heap geri kazanımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Aktif map pinleri bitmeden frame bırakılmaz.",
      "action": "kernel/src/runtime/user_heap.rs hedefinde os_user_heap_reclaim yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/heap.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aktif map pinleri bitmeden frame bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_reclaim"
      },
      "dependencies": [
        "K1736"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Serbest nesnelerle boş sayfa",
      "counterexample": "Pinli buffer sayfasını shrink",
      "guestAcceptance": "Kopya tamamlanınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_reclaim_positive",
        "negativeName": "os_user_heap_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K1740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Serbest nesnelerle boş sayfa ile Pinli buffer sayfasını shrink ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Pinli buffer sayfasını shrink” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1737"
    },
    {
      "id": "K1738",
      "number": 1738,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.reclaim",
      "stage": "positive",
      "title": "Kullanıcı heap geri kazanımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Aktif map pinleri bitmeden frame bırakılmaz.",
      "action": "os_user_heap_reclaim_positive testini oluştur: “Serbest nesnelerle boş sayfa”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aktif map pinleri bitmeden frame bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_reclaim"
      },
      "dependencies": [
        "K1737"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Serbest nesnelerle boş sayfa",
      "counterexample": "Pinli buffer sayfasını shrink",
      "guestAcceptance": "Kopya tamamlanınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_reclaim_positive",
        "negativeName": "os_user_heap_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K1740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Serbest nesnelerle boş sayfa girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Pinli buffer sayfasını shrink” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1738"
    },
    {
      "id": "K1739",
      "number": 1739,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.reclaim",
      "stage": "negative",
      "title": "Kullanıcı heap geri kazanımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Aktif map pinleri bitmeden frame bırakılmaz.",
      "action": "os_user_heap_reclaim_negative testini oluştur: “Pinli buffer sayfasını shrink”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aktif map pinleri bitmeden frame bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_reclaim"
      },
      "dependencies": [
        "K1738"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Serbest nesnelerle boş sayfa",
      "counterexample": "Pinli buffer sayfasını shrink",
      "guestAcceptance": "Kopya tamamlanınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_reclaim_positive",
        "negativeName": "os_user_heap_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K1740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Pinli buffer sayfasını shrink karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Pinli buffer sayfasını shrink” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1739"
    },
    {
      "id": "K1740",
      "number": 1740,
      "phase": 12,
      "module": "user_heap",
      "feature": "user_heap.reclaim",
      "stage": "integration",
      "title": "Kullanıcı heap geri kazanımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Aktif map pinleri bitmeden frame bırakılmaz.",
      "action": "Tek ürün Image'ında “Kopya tamamlanınca tek iade” kabulünü koştur. scripts/os-acceptance/user_heap.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aktif map pinleri bitmeden frame bırakılmaz",
      "source": {
        "target": "kernel/src/runtime/user_heap.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/heap.rs",
        "existingReferenceSha256": "8e48f8f0e7565aba69ab2b279a95e83aeb714340ca014109fb653062f306efd8",
        "symbol": "os_user_heap_reclaim"
      },
      "dependencies": [
        "K1739"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Serbest nesnelerle boş sayfa",
      "counterexample": "Pinli buffer sayfasını shrink",
      "guestAcceptance": "Kopya tamamlanınca tek iade",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_heap.rs",
        "harness": "scripts/os-acceptance/user_heap.mjs",
        "positiveName": "os_user_heap_reclaim_positive",
        "negativeName": "os_user_heap_reclaim_negative",
        "expectedMarker": "TURKOS/OS/K1740: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kopya tamamlanınca tek iade; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Pinli buffer sayfasını shrink” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1740"
    },
    {
      "id": "K1741",
      "number": 1741,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.anonymous",
      "stage": "contract",
      "title": "Anonim map yer seçimi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: VA arama sınırlı ve çakışmasızdır.",
      "action": "“Anonim map yer seçimi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: VA arama sınırlı ve çakışmasızdır. “Boşluklu üç bölge” kabulü ile “Tüm VA penceresi dolu” reddini aynı sözleşmeye bağla.",
      "invariant": "VA arama sınırlı ve çakışmasızdır",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_anonymous"
      },
      "dependencies": [
        "K1740"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Boşluklu üç bölge",
      "counterexample": "Tüm VA penceresi dolu",
      "guestAcceptance": "MAP başarısızlığında tablo sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_anonymous_positive",
        "negativeName": "os_user_mappings_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K1745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu VA arama sınırlı ve çakışmasızdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Tüm VA penceresi dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1741"
    },
    {
      "id": "K1742",
      "number": 1742,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.anonymous",
      "stage": "implementation",
      "title": "Anonim map yer seçimi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: VA arama sınırlı ve çakışmasızdır.",
      "action": "kernel/src/runtime/user_mappings.rs hedefinde os_user_mappings_anonymous yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "VA arama sınırlı ve çakışmasızdır",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_anonymous"
      },
      "dependencies": [
        "K1741"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Boşluklu üç bölge",
      "counterexample": "Tüm VA penceresi dolu",
      "guestAcceptance": "MAP başarısızlığında tablo sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_anonymous_positive",
        "negativeName": "os_user_mappings_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K1745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boşluklu üç bölge ile Tüm VA penceresi dolu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Tüm VA penceresi dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1742"
    },
    {
      "id": "K1743",
      "number": 1743,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.anonymous",
      "stage": "positive",
      "title": "Anonim map yer seçimi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: VA arama sınırlı ve çakışmasızdır.",
      "action": "os_user_mappings_anonymous_positive testini oluştur: “Boşluklu üç bölge”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "VA arama sınırlı ve çakışmasızdır",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_anonymous"
      },
      "dependencies": [
        "K1742"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Boşluklu üç bölge",
      "counterexample": "Tüm VA penceresi dolu",
      "guestAcceptance": "MAP başarısızlığında tablo sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_anonymous_positive",
        "negativeName": "os_user_mappings_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K1745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boşluklu üç bölge girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Tüm VA penceresi dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1743"
    },
    {
      "id": "K1744",
      "number": 1744,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.anonymous",
      "stage": "negative",
      "title": "Anonim map yer seçimi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: VA arama sınırlı ve çakışmasızdır.",
      "action": "os_user_mappings_anonymous_negative testini oluştur: “Tüm VA penceresi dolu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "VA arama sınırlı ve çakışmasızdır",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_anonymous"
      },
      "dependencies": [
        "K1743"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Boşluklu üç bölge",
      "counterexample": "Tüm VA penceresi dolu",
      "guestAcceptance": "MAP başarısızlığında tablo sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_anonymous_positive",
        "negativeName": "os_user_mappings_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K1745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tüm VA penceresi dolu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Tüm VA penceresi dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1744"
    },
    {
      "id": "K1745",
      "number": 1745,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.anonymous",
      "stage": "integration",
      "title": "Anonim map yer seçimi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: VA arama sınırlı ve çakışmasızdır.",
      "action": "Tek ürün Image'ında “MAP başarısızlığında tablo sabit” kabulünü koştur. scripts/os-acceptance/user_mappings.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "VA arama sınırlı ve çakışmasızdır",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_anonymous"
      },
      "dependencies": [
        "K1744"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Boşluklu üç bölge",
      "counterexample": "Tüm VA penceresi dolu",
      "guestAcceptance": "MAP başarısızlığında tablo sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_anonymous_positive",
        "negativeName": "os_user_mappings_anonymous_negative",
        "expectedMarker": "TURKOS/OS/K1745: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "MAP başarısızlığında tablo sabit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Tüm VA penceresi dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1745"
    },
    {
      "id": "K1746",
      "number": 1746,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.file_ro",
      "stage": "contract",
      "title": "Salt-okunur file mapping · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Son sayfa EOF ötesi sıfır olur.",
      "action": "“Salt-okunur file mapping” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Son sayfa EOF ötesi sıfır olur. “513 bayt RO dosya” kabulü ile “Dosya boyundan büyük offset” reddini aynı sözleşmeye bağla.",
      "invariant": "Son sayfa EOF ötesi sıfır olur",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_file_ro"
      },
      "dependencies": [
        "K1745"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "513 bayt RO dosya",
      "counterexample": "Dosya boyundan büyük offset",
      "guestAcceptance": "Başka inode verisi sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_file_ro_positive",
        "negativeName": "os_user_mappings_file_ro_negative",
        "expectedMarker": "TURKOS/OS/K1750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Son sayfa EOF ötesi sıfır olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Dosya boyundan büyük offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1746"
    },
    {
      "id": "K1747",
      "number": 1747,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.file_ro",
      "stage": "implementation",
      "title": "Salt-okunur file mapping · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Son sayfa EOF ötesi sıfır olur.",
      "action": "kernel/src/runtime/user_mappings.rs hedefinde os_user_mappings_file_ro yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Son sayfa EOF ötesi sıfır olur",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_file_ro"
      },
      "dependencies": [
        "K1746"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "513 bayt RO dosya",
      "counterexample": "Dosya boyundan büyük offset",
      "guestAcceptance": "Başka inode verisi sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_file_ro_positive",
        "negativeName": "os_user_mappings_file_ro_negative",
        "expectedMarker": "TURKOS/OS/K1750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 513 bayt RO dosya ile Dosya boyundan büyük offset ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Dosya boyundan büyük offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1747"
    },
    {
      "id": "K1748",
      "number": 1748,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.file_ro",
      "stage": "positive",
      "title": "Salt-okunur file mapping · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Son sayfa EOF ötesi sıfır olur.",
      "action": "os_user_mappings_file_ro_positive testini oluştur: “513 bayt RO dosya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Son sayfa EOF ötesi sıfır olur",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_file_ro"
      },
      "dependencies": [
        "K1747"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "513 bayt RO dosya",
      "counterexample": "Dosya boyundan büyük offset",
      "guestAcceptance": "Başka inode verisi sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_file_ro_positive",
        "negativeName": "os_user_mappings_file_ro_negative",
        "expectedMarker": "TURKOS/OS/K1750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 513 bayt RO dosya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Dosya boyundan büyük offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1748"
    },
    {
      "id": "K1749",
      "number": 1749,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.file_ro",
      "stage": "negative",
      "title": "Salt-okunur file mapping · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Son sayfa EOF ötesi sıfır olur.",
      "action": "os_user_mappings_file_ro_negative testini oluştur: “Dosya boyundan büyük offset”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Son sayfa EOF ötesi sıfır olur",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_file_ro"
      },
      "dependencies": [
        "K1748"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "513 bayt RO dosya",
      "counterexample": "Dosya boyundan büyük offset",
      "guestAcceptance": "Başka inode verisi sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_file_ro_positive",
        "negativeName": "os_user_mappings_file_ro_negative",
        "expectedMarker": "TURKOS/OS/K1750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dosya boyundan büyük offset karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Dosya boyundan büyük offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1749"
    },
    {
      "id": "K1750",
      "number": 1750,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.file_ro",
      "stage": "integration",
      "title": "Salt-okunur file mapping · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Son sayfa EOF ötesi sıfır olur.",
      "action": "Tek ürün Image'ında “Başka inode verisi sızmaz” kabulünü koştur. scripts/os-acceptance/user_mappings.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Son sayfa EOF ötesi sıfır olur",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_file_ro"
      },
      "dependencies": [
        "K1749"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "513 bayt RO dosya",
      "counterexample": "Dosya boyundan büyük offset",
      "guestAcceptance": "Başka inode verisi sızmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_file_ro_positive",
        "negativeName": "os_user_mappings_file_ro_negative",
        "expectedMarker": "TURKOS/OS/K1750: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başka inode verisi sızmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Dosya boyundan büyük offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1750"
    },
    {
      "id": "K1751",
      "number": 1751,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.private",
      "stage": "contract",
      "title": "Özel dosya map COW · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yazı kaynak dosyayı değiştirmez.",
      "action": "“Özel dosya map COW” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yazı kaynak dosyayı değiştirmez. “İki süreç aynı RO file” kabulü ile “COW kopya tahsisinde hata” reddini aynı sözleşmeye bağla.",
      "invariant": "Yazı kaynak dosyayı değiştirmez",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_private"
      },
      "dependencies": [
        "K1750"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki süreç aynı RO file",
      "counterexample": "COW kopya tahsisinde hata",
      "guestAcceptance": "A özel değişir kaynak hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_private_positive",
        "negativeName": "os_user_mappings_private_negative",
        "expectedMarker": "TURKOS/OS/K1755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yazı kaynak dosyayı değiştirmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“COW kopya tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1751"
    },
    {
      "id": "K1752",
      "number": 1752,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.private",
      "stage": "implementation",
      "title": "Özel dosya map COW · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yazı kaynak dosyayı değiştirmez.",
      "action": "kernel/src/runtime/user_mappings.rs hedefinde os_user_mappings_private yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yazı kaynak dosyayı değiştirmez",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_private"
      },
      "dependencies": [
        "K1751"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki süreç aynı RO file",
      "counterexample": "COW kopya tahsisinde hata",
      "guestAcceptance": "A özel değişir kaynak hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_private_positive",
        "negativeName": "os_user_mappings_private_negative",
        "expectedMarker": "TURKOS/OS/K1755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki süreç aynı RO file ile COW kopya tahsisinde hata ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“COW kopya tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1752"
    },
    {
      "id": "K1753",
      "number": 1753,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.private",
      "stage": "positive",
      "title": "Özel dosya map COW · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yazı kaynak dosyayı değiştirmez.",
      "action": "os_user_mappings_private_positive testini oluştur: “İki süreç aynı RO file”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yazı kaynak dosyayı değiştirmez",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_private"
      },
      "dependencies": [
        "K1752"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki süreç aynı RO file",
      "counterexample": "COW kopya tahsisinde hata",
      "guestAcceptance": "A özel değişir kaynak hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_private_positive",
        "negativeName": "os_user_mappings_private_negative",
        "expectedMarker": "TURKOS/OS/K1755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki süreç aynı RO file girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“COW kopya tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1753"
    },
    {
      "id": "K1754",
      "number": 1754,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.private",
      "stage": "negative",
      "title": "Özel dosya map COW · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yazı kaynak dosyayı değiştirmez.",
      "action": "os_user_mappings_private_negative testini oluştur: “COW kopya tahsisinde hata”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yazı kaynak dosyayı değiştirmez",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_private"
      },
      "dependencies": [
        "K1753"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki süreç aynı RO file",
      "counterexample": "COW kopya tahsisinde hata",
      "guestAcceptance": "A özel değişir kaynak hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_private_positive",
        "negativeName": "os_user_mappings_private_negative",
        "expectedMarker": "TURKOS/OS/K1755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "COW kopya tahsisinde hata karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“COW kopya tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1754"
    },
    {
      "id": "K1755",
      "number": 1755,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.private",
      "stage": "integration",
      "title": "Özel dosya map COW · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yazı kaynak dosyayı değiştirmez.",
      "action": "Tek ürün Image'ında “A özel değişir kaynak hash sabit” kabulünü koştur. scripts/os-acceptance/user_mappings.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yazı kaynak dosyayı değiştirmez",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_private"
      },
      "dependencies": [
        "K1754"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki süreç aynı RO file",
      "counterexample": "COW kopya tahsisinde hata",
      "guestAcceptance": "A özel değişir kaynak hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_private_positive",
        "negativeName": "os_user_mappings_private_negative",
        "expectedMarker": "TURKOS/OS/K1755: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "A özel değişir kaynak hash sabit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“COW kopya tahsisinde hata” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1755"
    },
    {
      "id": "K1756",
      "number": 1756,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.unmap_split",
      "stage": "contract",
      "title": "Parçalı unmap ve mapping bölme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Ortadan kaldırma iki ayrı bölge üretir.",
      "action": "“Parçalı unmap ve mapping bölme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ortadan kaldırma iki ayrı bölge üretir. “Üç sayfanın ortası unmap” kabulü ile “Boşluk üstünden ikinci unmap” reddini aynı sözleşmeye bağla.",
      "invariant": "Ortadan kaldırma iki ayrı bölge üretir",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_unmap_split"
      },
      "dependencies": [
        "K1755"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç sayfanın ortası unmap",
      "counterexample": "Boşluk üstünden ikinci unmap",
      "guestAcceptance": "Kalan mapler erişilir sayaç doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_unmap_split_positive",
        "negativeName": "os_user_mappings_unmap_split_negative",
        "expectedMarker": "TURKOS/OS/K1760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ortadan kaldırma iki ayrı bölge üretir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Boşluk üstünden ikinci unmap” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1756"
    },
    {
      "id": "K1757",
      "number": 1757,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.unmap_split",
      "stage": "implementation",
      "title": "Parçalı unmap ve mapping bölme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Ortadan kaldırma iki ayrı bölge üretir.",
      "action": "kernel/src/runtime/user_mappings.rs hedefinde os_user_mappings_unmap_split yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ortadan kaldırma iki ayrı bölge üretir",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_unmap_split"
      },
      "dependencies": [
        "K1756"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç sayfanın ortası unmap",
      "counterexample": "Boşluk üstünden ikinci unmap",
      "guestAcceptance": "Kalan mapler erişilir sayaç doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_unmap_split_positive",
        "negativeName": "os_user_mappings_unmap_split_negative",
        "expectedMarker": "TURKOS/OS/K1760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç sayfanın ortası unmap ile Boşluk üstünden ikinci unmap ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Boşluk üstünden ikinci unmap” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1757"
    },
    {
      "id": "K1758",
      "number": 1758,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.unmap_split",
      "stage": "positive",
      "title": "Parçalı unmap ve mapping bölme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Ortadan kaldırma iki ayrı bölge üretir.",
      "action": "os_user_mappings_unmap_split_positive testini oluştur: “Üç sayfanın ortası unmap”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ortadan kaldırma iki ayrı bölge üretir",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_unmap_split"
      },
      "dependencies": [
        "K1757"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç sayfanın ortası unmap",
      "counterexample": "Boşluk üstünden ikinci unmap",
      "guestAcceptance": "Kalan mapler erişilir sayaç doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_unmap_split_positive",
        "negativeName": "os_user_mappings_unmap_split_negative",
        "expectedMarker": "TURKOS/OS/K1760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç sayfanın ortası unmap girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Boşluk üstünden ikinci unmap” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1758"
    },
    {
      "id": "K1759",
      "number": 1759,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.unmap_split",
      "stage": "negative",
      "title": "Parçalı unmap ve mapping bölme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Ortadan kaldırma iki ayrı bölge üretir.",
      "action": "os_user_mappings_unmap_split_negative testini oluştur: “Boşluk üstünden ikinci unmap”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ortadan kaldırma iki ayrı bölge üretir",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_unmap_split"
      },
      "dependencies": [
        "K1758"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç sayfanın ortası unmap",
      "counterexample": "Boşluk üstünden ikinci unmap",
      "guestAcceptance": "Kalan mapler erişilir sayaç doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_unmap_split_positive",
        "negativeName": "os_user_mappings_unmap_split_negative",
        "expectedMarker": "TURKOS/OS/K1760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Boşluk üstünden ikinci unmap karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Boşluk üstünden ikinci unmap” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1759"
    },
    {
      "id": "K1760",
      "number": 1760,
      "phase": 12,
      "module": "user_mappings",
      "feature": "user_mappings.unmap_split",
      "stage": "integration",
      "title": "Parçalı unmap ve mapping bölme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Ortadan kaldırma iki ayrı bölge üretir.",
      "action": "Tek ürün Image'ında “Kalan mapler erişilir sayaç doğru” kabulünü koştur. scripts/os-acceptance/user_mappings.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ortadan kaldırma iki ayrı bölge üretir",
      "source": {
        "target": "kernel/src/runtime/user_mappings.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_user_mappings_unmap_split"
      },
      "dependencies": [
        "K1759"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç sayfanın ortası unmap",
      "counterexample": "Boşluk üstünden ikinci unmap",
      "guestAcceptance": "Kalan mapler erişilir sayaç doğru",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/user_mappings.rs",
        "harness": "scripts/os-acceptance/user_mappings.mjs",
        "positiveName": "os_user_mappings_unmap_split_positive",
        "negativeName": "os_user_mappings_unmap_split_negative",
        "expectedMarker": "TURKOS/OS/K1760: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kalan mapler erişilir sayaç doğru; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Boşluk üstünden ikinci unmap” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1760"
    },
    {
      "id": "K1761",
      "number": 1761,
      "phase": 12,
      "module": "exec",
      "feature": "exec.path_exec",
      "stage": "contract",
      "title": "VFSden imaj açma · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Exec salt-okunur dosya kimliğini sabitler.",
      "action": "“VFSden imaj açma” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Exec salt-okunur dosya kimliğini sabitler. “Bilinen executable inode” kabulü ile “Dosya açıldıktan sonra ad değişir” reddini aynı sözleşmeye bağla.",
      "invariant": "Exec salt-okunur dosya kimliğini sabitler",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_path_exec"
      },
      "dependencies": [
        "K1760"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bilinen executable inode",
      "counterexample": "Dosya açıldıktan sonra ad değişir",
      "guestAcceptance": "Exec aynı açık inode byteını kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_path_exec_positive",
        "negativeName": "os_exec_path_exec_negative",
        "expectedMarker": "TURKOS/OS/K1765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Exec salt-okunur dosya kimliğini sabitler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Dosya açıldıktan sonra ad değişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1761"
    },
    {
      "id": "K1762",
      "number": 1762,
      "phase": 12,
      "module": "exec",
      "feature": "exec.path_exec",
      "stage": "implementation",
      "title": "VFSden imaj açma · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Exec salt-okunur dosya kimliğini sabitler.",
      "action": "kernel/src/runtime/exec.rs hedefinde os_exec_path_exec yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_image.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Exec salt-okunur dosya kimliğini sabitler",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_path_exec"
      },
      "dependencies": [
        "K1761"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bilinen executable inode",
      "counterexample": "Dosya açıldıktan sonra ad değişir",
      "guestAcceptance": "Exec aynı açık inode byteını kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_path_exec_positive",
        "negativeName": "os_exec_path_exec_negative",
        "expectedMarker": "TURKOS/OS/K1765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen executable inode ile Dosya açıldıktan sonra ad değişir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Dosya açıldıktan sonra ad değişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1762"
    },
    {
      "id": "K1763",
      "number": 1763,
      "phase": 12,
      "module": "exec",
      "feature": "exec.path_exec",
      "stage": "positive",
      "title": "VFSden imaj açma · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Exec salt-okunur dosya kimliğini sabitler.",
      "action": "os_exec_path_exec_positive testini oluştur: “Bilinen executable inode”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Exec salt-okunur dosya kimliğini sabitler",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_path_exec"
      },
      "dependencies": [
        "K1762"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bilinen executable inode",
      "counterexample": "Dosya açıldıktan sonra ad değişir",
      "guestAcceptance": "Exec aynı açık inode byteını kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_path_exec_positive",
        "negativeName": "os_exec_path_exec_negative",
        "expectedMarker": "TURKOS/OS/K1765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen executable inode girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Dosya açıldıktan sonra ad değişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1763"
    },
    {
      "id": "K1764",
      "number": 1764,
      "phase": 12,
      "module": "exec",
      "feature": "exec.path_exec",
      "stage": "negative",
      "title": "VFSden imaj açma · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Exec salt-okunur dosya kimliğini sabitler.",
      "action": "os_exec_path_exec_negative testini oluştur: “Dosya açıldıktan sonra ad değişir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Exec salt-okunur dosya kimliğini sabitler",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_path_exec"
      },
      "dependencies": [
        "K1763"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bilinen executable inode",
      "counterexample": "Dosya açıldıktan sonra ad değişir",
      "guestAcceptance": "Exec aynı açık inode byteını kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_path_exec_positive",
        "negativeName": "os_exec_path_exec_negative",
        "expectedMarker": "TURKOS/OS/K1765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dosya açıldıktan sonra ad değişir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Dosya açıldıktan sonra ad değişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1764"
    },
    {
      "id": "K1765",
      "number": 1765,
      "phase": 12,
      "module": "exec",
      "feature": "exec.path_exec",
      "stage": "integration",
      "title": "VFSden imaj açma · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Exec salt-okunur dosya kimliğini sabitler.",
      "action": "Tek ürün Image'ında “Exec aynı açık inode byteını kullanır” kabulünü koştur. scripts/os-acceptance/exec.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Exec salt-okunur dosya kimliğini sabitler",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_path_exec"
      },
      "dependencies": [
        "K1764"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bilinen executable inode",
      "counterexample": "Dosya açıldıktan sonra ad değişir",
      "guestAcceptance": "Exec aynı açık inode byteını kullanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_path_exec_positive",
        "negativeName": "os_exec_path_exec_negative",
        "expectedMarker": "TURKOS/OS/K1765: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Exec aynı açık inode byteını kullanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Dosya açıldıktan sonra ad değişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1765"
    },
    {
      "id": "K1766",
      "number": 1766,
      "phase": 12,
      "module": "exec",
      "feature": "exec.replace",
      "stage": "contract",
      "title": "Exec atomik adres alanı değişimi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yeni imaj hazır olmadan eski kök atılmaz.",
      "action": "“Exec atomik adres alanı değişimi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yeni imaj hazır olmadan eski kök atılmaz. “Eski süreç yeni program çalıştırır” kabulü ile “Yeni stackte ENOSPC” reddini aynı sözleşmeye bağla.",
      "invariant": "Yeni imaj hazır olmadan eski kök atılmaz",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_replace"
      },
      "dependencies": [
        "K1765"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Eski süreç yeni program çalıştırır",
      "counterexample": "Yeni stackte ENOSPC",
      "guestAcceptance": "Eski program tanımlı hata ile sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_replace_positive",
        "negativeName": "os_exec_replace_negative",
        "expectedMarker": "TURKOS/OS/K1770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yeni imaj hazır olmadan eski kök atılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yeni stackte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1766"
    },
    {
      "id": "K1767",
      "number": 1767,
      "phase": 12,
      "module": "exec",
      "feature": "exec.replace",
      "stage": "implementation",
      "title": "Exec atomik adres alanı değişimi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yeni imaj hazır olmadan eski kök atılmaz.",
      "action": "kernel/src/runtime/exec.rs hedefinde os_exec_replace yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_image.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yeni imaj hazır olmadan eski kök atılmaz",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_replace"
      },
      "dependencies": [
        "K1766"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Eski süreç yeni program çalıştırır",
      "counterexample": "Yeni stackte ENOSPC",
      "guestAcceptance": "Eski program tanımlı hata ile sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_replace_positive",
        "negativeName": "os_exec_replace_negative",
        "expectedMarker": "TURKOS/OS/K1770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Eski süreç yeni program çalıştırır ile Yeni stackte ENOSPC ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yeni stackte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1767"
    },
    {
      "id": "K1768",
      "number": 1768,
      "phase": 12,
      "module": "exec",
      "feature": "exec.replace",
      "stage": "positive",
      "title": "Exec atomik adres alanı değişimi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yeni imaj hazır olmadan eski kök atılmaz.",
      "action": "os_exec_replace_positive testini oluştur: “Eski süreç yeni program çalıştırır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yeni imaj hazır olmadan eski kök atılmaz",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_replace"
      },
      "dependencies": [
        "K1767"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Eski süreç yeni program çalıştırır",
      "counterexample": "Yeni stackte ENOSPC",
      "guestAcceptance": "Eski program tanımlı hata ile sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_replace_positive",
        "negativeName": "os_exec_replace_negative",
        "expectedMarker": "TURKOS/OS/K1770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Eski süreç yeni program çalıştırır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yeni stackte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1768"
    },
    {
      "id": "K1769",
      "number": 1769,
      "phase": 12,
      "module": "exec",
      "feature": "exec.replace",
      "stage": "negative",
      "title": "Exec atomik adres alanı değişimi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yeni imaj hazır olmadan eski kök atılmaz.",
      "action": "os_exec_replace_negative testini oluştur: “Yeni stackte ENOSPC”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yeni imaj hazır olmadan eski kök atılmaz",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_replace"
      },
      "dependencies": [
        "K1768"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Eski süreç yeni program çalıştırır",
      "counterexample": "Yeni stackte ENOSPC",
      "guestAcceptance": "Eski program tanımlı hata ile sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_replace_positive",
        "negativeName": "os_exec_replace_negative",
        "expectedMarker": "TURKOS/OS/K1770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni stackte ENOSPC karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yeni stackte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1769"
    },
    {
      "id": "K1770",
      "number": 1770,
      "phase": 12,
      "module": "exec",
      "feature": "exec.replace",
      "stage": "integration",
      "title": "Exec atomik adres alanı değişimi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yeni imaj hazır olmadan eski kök atılmaz.",
      "action": "Tek ürün Image'ında “Eski program tanımlı hata ile sürer” kabulünü koştur. scripts/os-acceptance/exec.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yeni imaj hazır olmadan eski kök atılmaz",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_replace"
      },
      "dependencies": [
        "K1769"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Eski süreç yeni program çalıştırır",
      "counterexample": "Yeni stackte ENOSPC",
      "guestAcceptance": "Eski program tanımlı hata ile sürer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_replace_positive",
        "negativeName": "os_exec_replace_negative",
        "expectedMarker": "TURKOS/OS/K1770: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski program tanımlı hata ile sürer; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yeni stackte ENOSPC” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1770"
    },
    {
      "id": "K1771",
      "number": 1771,
      "phase": 12,
      "module": "exec",
      "feature": "exec.environment",
      "stage": "contract",
      "title": "Argv env toplam sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Sayı uzunluk ve NULlar önce doğrulanır.",
      "action": "“Argv env toplam sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Sayı uzunluk ve NULlar önce doğrulanır. “Türkçe argv ve env” kabulü ile “Toplam boy limit artı bir” reddini aynı sözleşmeye bağla.",
      "invariant": "Sayı uzunluk ve NULlar önce doğrulanır",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_environment"
      },
      "dependencies": [
        "K1770"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Türkçe argv ve env",
      "counterexample": "Toplam boy limit artı bir",
      "guestAcceptance": "Hiçbir argüman kısmen yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_environment_positive",
        "negativeName": "os_exec_environment_negative",
        "expectedMarker": "TURKOS/OS/K1775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Sayı uzunluk ve NULlar önce doğrulanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Toplam boy limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1771"
    },
    {
      "id": "K1772",
      "number": 1772,
      "phase": 12,
      "module": "exec",
      "feature": "exec.environment",
      "stage": "implementation",
      "title": "Argv env toplam sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Sayı uzunluk ve NULlar önce doğrulanır.",
      "action": "kernel/src/runtime/exec.rs hedefinde os_exec_environment yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_image.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Sayı uzunluk ve NULlar önce doğrulanır",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_environment"
      },
      "dependencies": [
        "K1771"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Türkçe argv ve env",
      "counterexample": "Toplam boy limit artı bir",
      "guestAcceptance": "Hiçbir argüman kısmen yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_environment_positive",
        "negativeName": "os_exec_environment_negative",
        "expectedMarker": "TURKOS/OS/K1775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Türkçe argv ve env ile Toplam boy limit artı bir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Toplam boy limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1772"
    },
    {
      "id": "K1773",
      "number": 1773,
      "phase": 12,
      "module": "exec",
      "feature": "exec.environment",
      "stage": "positive",
      "title": "Argv env toplam sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Sayı uzunluk ve NULlar önce doğrulanır.",
      "action": "os_exec_environment_positive testini oluştur: “Türkçe argv ve env”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Sayı uzunluk ve NULlar önce doğrulanır",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_environment"
      },
      "dependencies": [
        "K1772"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Türkçe argv ve env",
      "counterexample": "Toplam boy limit artı bir",
      "guestAcceptance": "Hiçbir argüman kısmen yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_environment_positive",
        "negativeName": "os_exec_environment_negative",
        "expectedMarker": "TURKOS/OS/K1775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Türkçe argv ve env girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Toplam boy limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1773"
    },
    {
      "id": "K1774",
      "number": 1774,
      "phase": 12,
      "module": "exec",
      "feature": "exec.environment",
      "stage": "negative",
      "title": "Argv env toplam sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Sayı uzunluk ve NULlar önce doğrulanır.",
      "action": "os_exec_environment_negative testini oluştur: “Toplam boy limit artı bir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Sayı uzunluk ve NULlar önce doğrulanır",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_environment"
      },
      "dependencies": [
        "K1773"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Türkçe argv ve env",
      "counterexample": "Toplam boy limit artı bir",
      "guestAcceptance": "Hiçbir argüman kısmen yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_environment_positive",
        "negativeName": "os_exec_environment_negative",
        "expectedMarker": "TURKOS/OS/K1775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Toplam boy limit artı bir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Toplam boy limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1774"
    },
    {
      "id": "K1775",
      "number": 1775,
      "phase": 12,
      "module": "exec",
      "feature": "exec.environment",
      "stage": "integration",
      "title": "Argv env toplam sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Sayı uzunluk ve NULlar önce doğrulanır.",
      "action": "Tek ürün Image'ında “Hiçbir argüman kısmen yayımlanmaz” kabulünü koştur. scripts/os-acceptance/exec.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Sayı uzunluk ve NULlar önce doğrulanır",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_environment"
      },
      "dependencies": [
        "K1774"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Türkçe argv ve env",
      "counterexample": "Toplam boy limit artı bir",
      "guestAcceptance": "Hiçbir argüman kısmen yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_environment_positive",
        "negativeName": "os_exec_environment_negative",
        "expectedMarker": "TURKOS/OS/K1775: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hiçbir argüman kısmen yayımlanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Toplam boy limit artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1775"
    },
    {
      "id": "K1776",
      "number": 1776,
      "phase": 12,
      "module": "exec",
      "feature": "exec.close_exec",
      "stage": "contract",
      "title": "Exec handle miras politikası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: CloseOnExec hakkı yeni programda yoktur.",
      "action": "“Exec handle miras politikası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: CloseOnExec hakkı yeni programda yoktur. “Bir miras bir kapalı handle” kabulü ile “Kernel handle mirasla sızar” reddini aynı sözleşmeye bağla.",
      "invariant": "CloseOnExec hakkı yeni programda yoktur",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_close_exec"
      },
      "dependencies": [
        "K1775"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir miras bir kapalı handle",
      "counterexample": "Kernel handle mirasla sızar",
      "guestAcceptance": "Yeni program yalnız izinli handleları görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_close_exec_positive",
        "negativeName": "os_exec_close_exec_negative",
        "expectedMarker": "TURKOS/OS/K1780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu CloseOnExec hakkı yeni programda yoktur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kernel handle mirasla sızar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1776"
    },
    {
      "id": "K1777",
      "number": 1777,
      "phase": 12,
      "module": "exec",
      "feature": "exec.close_exec",
      "stage": "implementation",
      "title": "Exec handle miras politikası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: CloseOnExec hakkı yeni programda yoktur.",
      "action": "kernel/src/runtime/exec.rs hedefinde os_exec_close_exec yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process_image.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "CloseOnExec hakkı yeni programda yoktur",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_close_exec"
      },
      "dependencies": [
        "K1776"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir miras bir kapalı handle",
      "counterexample": "Kernel handle mirasla sızar",
      "guestAcceptance": "Yeni program yalnız izinli handleları görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_close_exec_positive",
        "negativeName": "os_exec_close_exec_negative",
        "expectedMarker": "TURKOS/OS/K1780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir miras bir kapalı handle ile Kernel handle mirasla sızar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kernel handle mirasla sızar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1777"
    },
    {
      "id": "K1778",
      "number": 1778,
      "phase": 12,
      "module": "exec",
      "feature": "exec.close_exec",
      "stage": "positive",
      "title": "Exec handle miras politikası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: CloseOnExec hakkı yeni programda yoktur.",
      "action": "os_exec_close_exec_positive testini oluştur: “Bir miras bir kapalı handle”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "CloseOnExec hakkı yeni programda yoktur",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_close_exec"
      },
      "dependencies": [
        "K1777"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir miras bir kapalı handle",
      "counterexample": "Kernel handle mirasla sızar",
      "guestAcceptance": "Yeni program yalnız izinli handleları görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_close_exec_positive",
        "negativeName": "os_exec_close_exec_negative",
        "expectedMarker": "TURKOS/OS/K1780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir miras bir kapalı handle girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kernel handle mirasla sızar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1778"
    },
    {
      "id": "K1779",
      "number": 1779,
      "phase": 12,
      "module": "exec",
      "feature": "exec.close_exec",
      "stage": "negative",
      "title": "Exec handle miras politikası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: CloseOnExec hakkı yeni programda yoktur.",
      "action": "os_exec_close_exec_negative testini oluştur: “Kernel handle mirasla sızar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "CloseOnExec hakkı yeni programda yoktur",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_close_exec"
      },
      "dependencies": [
        "K1778"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir miras bir kapalı handle",
      "counterexample": "Kernel handle mirasla sızar",
      "guestAcceptance": "Yeni program yalnız izinli handleları görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_close_exec_positive",
        "negativeName": "os_exec_close_exec_negative",
        "expectedMarker": "TURKOS/OS/K1780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel handle mirasla sızar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kernel handle mirasla sızar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1779"
    },
    {
      "id": "K1780",
      "number": 1780,
      "phase": 12,
      "module": "exec",
      "feature": "exec.close_exec",
      "stage": "integration",
      "title": "Exec handle miras politikası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: CloseOnExec hakkı yeni programda yoktur.",
      "action": "Tek ürün Image'ında “Yeni program yalnız izinli handleları görür” kabulünü koştur. scripts/os-acceptance/exec.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "CloseOnExec hakkı yeni programda yoktur",
      "source": {
        "target": "kernel/src/runtime/exec.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process_image.rs",
        "existingReferenceSha256": "cb0f643265ebacc1f0d9b12fcaefb924ddcf8cef3129cd7cf6cb3cebe4103036",
        "symbol": "os_exec_close_exec"
      },
      "dependencies": [
        "K1779"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Bir miras bir kapalı handle",
      "counterexample": "Kernel handle mirasla sızar",
      "guestAcceptance": "Yeni program yalnız izinli handleları görür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/exec.rs",
        "harness": "scripts/os-acceptance/exec.mjs",
        "positiveName": "os_exec_close_exec_positive",
        "negativeName": "os_exec_close_exec_negative",
        "expectedMarker": "TURKOS/OS/K1780: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni program yalnız izinli handleları görür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kernel handle mirasla sızar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1780"
    },
    {
      "id": "K1781",
      "number": 1781,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.static_link",
      "stage": "contract",
      "title": "Native Rust static link · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Binary native syscall runtimeına bağlıdır.",
      "action": "“Native Rust static link” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Binary native syscall runtimeına bağlıdır. “İki no_std Rust araç” kabulü ile “Linux dynamic interpreter isteyen ELF” reddini aynı sözleşmeye bağla.",
      "invariant": "Binary native syscall runtimeına bağlıdır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_static_link"
      },
      "dependencies": [
        "K1780"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki no_std Rust araç",
      "counterexample": "Linux dynamic interpreter isteyen ELF",
      "guestAcceptance": "Unsupported biçim açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_static_link_positive",
        "negativeName": "os_program_format_static_link_negative",
        "expectedMarker": "TURKOS/OS/K1785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Binary native syscall runtimeına bağlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Linux dynamic interpreter isteyen ELF” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1781"
    },
    {
      "id": "K1782",
      "number": 1782,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.static_link",
      "stage": "implementation",
      "title": "Native Rust static link · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Binary native syscall runtimeına bağlıdır.",
      "action": "userspace/src/program_format.rs hedefinde os_program_format_static_link yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Binary native syscall runtimeına bağlıdır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_static_link"
      },
      "dependencies": [
        "K1781"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki no_std Rust araç",
      "counterexample": "Linux dynamic interpreter isteyen ELF",
      "guestAcceptance": "Unsupported biçim açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_static_link_positive",
        "negativeName": "os_program_format_static_link_negative",
        "expectedMarker": "TURKOS/OS/K1785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki no_std Rust araç ile Linux dynamic interpreter isteyen ELF ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Linux dynamic interpreter isteyen ELF” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1782"
    },
    {
      "id": "K1783",
      "number": 1783,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.static_link",
      "stage": "positive",
      "title": "Native Rust static link · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Binary native syscall runtimeına bağlıdır.",
      "action": "os_program_format_static_link_positive testini oluştur: “İki no_std Rust araç”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Binary native syscall runtimeına bağlıdır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_static_link"
      },
      "dependencies": [
        "K1782"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki no_std Rust araç",
      "counterexample": "Linux dynamic interpreter isteyen ELF",
      "guestAcceptance": "Unsupported biçim açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_static_link_positive",
        "negativeName": "os_program_format_static_link_negative",
        "expectedMarker": "TURKOS/OS/K1785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki no_std Rust araç girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Linux dynamic interpreter isteyen ELF” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1783"
    },
    {
      "id": "K1784",
      "number": 1784,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.static_link",
      "stage": "negative",
      "title": "Native Rust static link · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Binary native syscall runtimeına bağlıdır.",
      "action": "os_program_format_static_link_negative testini oluştur: “Linux dynamic interpreter isteyen ELF”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Binary native syscall runtimeına bağlıdır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_static_link"
      },
      "dependencies": [
        "K1783"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki no_std Rust araç",
      "counterexample": "Linux dynamic interpreter isteyen ELF",
      "guestAcceptance": "Unsupported biçim açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_static_link_positive",
        "negativeName": "os_program_format_static_link_negative",
        "expectedMarker": "TURKOS/OS/K1785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Linux dynamic interpreter isteyen ELF karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Linux dynamic interpreter isteyen ELF” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1784"
    },
    {
      "id": "K1785",
      "number": 1785,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.static_link",
      "stage": "integration",
      "title": "Native Rust static link · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Binary native syscall runtimeına bağlıdır.",
      "action": "Tek ürün Image'ında “Unsupported biçim açık tanı” kabulünü koştur. scripts/os-acceptance/program_format.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Binary native syscall runtimeına bağlıdır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_static_link"
      },
      "dependencies": [
        "K1784"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "İki no_std Rust araç",
      "counterexample": "Linux dynamic interpreter isteyen ELF",
      "guestAcceptance": "Unsupported biçim açık tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_static_link_positive",
        "negativeName": "os_program_format_static_link_negative",
        "expectedMarker": "TURKOS/OS/K1785: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Unsupported biçim açık tanı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Linux dynamic interpreter isteyen ELF” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1785"
    },
    {
      "id": "K1786",
      "number": 1786,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.relocations",
      "stage": "contract",
      "title": "Sınırlı static PIE reloc · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yalnız seçilmiş relocation türleri kabul edilir.",
      "action": "“Sınırlı static PIE reloc” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yalnız seçilmiş relocation türleri kabul edilir. “AArch64 relative relocation” kabulü ile “Desteksiz relocation türü” reddini aynı sözleşmeye bağla.",
      "invariant": "Yalnız seçilmiş relocation türleri kabul edilir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_relocations"
      },
      "dependencies": [
        "K1785"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "AArch64 relative relocation",
      "counterexample": "Desteksiz relocation türü",
      "guestAcceptance": "Ret bütün yeni mappingleri geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_relocations_positive",
        "negativeName": "os_program_format_relocations_negative",
        "expectedMarker": "TURKOS/OS/K1790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yalnız seçilmiş relocation türleri kabul edilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Desteksiz relocation türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1786"
    },
    {
      "id": "K1787",
      "number": 1787,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.relocations",
      "stage": "implementation",
      "title": "Sınırlı static PIE reloc · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yalnız seçilmiş relocation türleri kabul edilir.",
      "action": "userspace/src/program_format.rs hedefinde os_program_format_relocations yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yalnız seçilmiş relocation türleri kabul edilir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_relocations"
      },
      "dependencies": [
        "K1786"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "AArch64 relative relocation",
      "counterexample": "Desteksiz relocation türü",
      "guestAcceptance": "Ret bütün yeni mappingleri geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_relocations_positive",
        "negativeName": "os_program_format_relocations_negative",
        "expectedMarker": "TURKOS/OS/K1790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. AArch64 relative relocation ile Desteksiz relocation türü ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Desteksiz relocation türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1787"
    },
    {
      "id": "K1788",
      "number": 1788,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.relocations",
      "stage": "positive",
      "title": "Sınırlı static PIE reloc · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yalnız seçilmiş relocation türleri kabul edilir.",
      "action": "os_program_format_relocations_positive testini oluştur: “AArch64 relative relocation”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yalnız seçilmiş relocation türleri kabul edilir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_relocations"
      },
      "dependencies": [
        "K1787"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "AArch64 relative relocation",
      "counterexample": "Desteksiz relocation türü",
      "guestAcceptance": "Ret bütün yeni mappingleri geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_relocations_positive",
        "negativeName": "os_program_format_relocations_negative",
        "expectedMarker": "TURKOS/OS/K1790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; AArch64 relative relocation girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Desteksiz relocation türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1788"
    },
    {
      "id": "K1789",
      "number": 1789,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.relocations",
      "stage": "negative",
      "title": "Sınırlı static PIE reloc · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yalnız seçilmiş relocation türleri kabul edilir.",
      "action": "os_program_format_relocations_negative testini oluştur: “Desteksiz relocation türü”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yalnız seçilmiş relocation türleri kabul edilir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_relocations"
      },
      "dependencies": [
        "K1788"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "AArch64 relative relocation",
      "counterexample": "Desteksiz relocation türü",
      "guestAcceptance": "Ret bütün yeni mappingleri geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_relocations_positive",
        "negativeName": "os_program_format_relocations_negative",
        "expectedMarker": "TURKOS/OS/K1790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Desteksiz relocation türü karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Desteksiz relocation türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1789"
    },
    {
      "id": "K1790",
      "number": 1790,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.relocations",
      "stage": "integration",
      "title": "Sınırlı static PIE reloc · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Yalnız seçilmiş relocation türleri kabul edilir.",
      "action": "Tek ürün Image'ında “Ret bütün yeni mappingleri geri alır” kabulünü koştur. scripts/os-acceptance/program_format.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yalnız seçilmiş relocation türleri kabul edilir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_relocations"
      },
      "dependencies": [
        "K1789"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "AArch64 relative relocation",
      "counterexample": "Desteksiz relocation türü",
      "guestAcceptance": "Ret bütün yeni mappingleri geri alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_relocations_positive",
        "negativeName": "os_program_format_relocations_negative",
        "expectedMarker": "TURKOS/OS/K1790: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret bütün yeni mappingleri geri alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Desteksiz relocation türü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1790"
    },
    {
      "id": "K1791",
      "number": 1791,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.manifest",
      "stage": "contract",
      "title": "Program ABI hak manifesti · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: İmaj hash ABI ve hak talebi ayrı alanlardır.",
      "action": "“Program ABI hak manifesti” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İmaj hash ABI ve hak talebi ayrı alanlardır. “ABI V1 RO file hakları” kabulü ile “Manifest hash imajla farklı” reddini aynı sözleşmeye bağla.",
      "invariant": "İmaj hash ABI ve hak talebi ayrı alanlardır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_manifest"
      },
      "dependencies": [
        "K1790"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "ABI V1 RO file hakları",
      "counterexample": "Manifest hash imajla farklı",
      "guestAcceptance": "Doğrulama exec öncesi durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_manifest_positive",
        "negativeName": "os_program_format_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İmaj hash ABI ve hak talebi ayrı alanlardır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Manifest hash imajla farklı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1791"
    },
    {
      "id": "K1792",
      "number": 1792,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.manifest",
      "stage": "implementation",
      "title": "Program ABI hak manifesti · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: İmaj hash ABI ve hak talebi ayrı alanlardır.",
      "action": "userspace/src/program_format.rs hedefinde os_program_format_manifest yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İmaj hash ABI ve hak talebi ayrı alanlardır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_manifest"
      },
      "dependencies": [
        "K1791"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "ABI V1 RO file hakları",
      "counterexample": "Manifest hash imajla farklı",
      "guestAcceptance": "Doğrulama exec öncesi durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_manifest_positive",
        "negativeName": "os_program_format_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. ABI V1 RO file hakları ile Manifest hash imajla farklı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Manifest hash imajla farklı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1792"
    },
    {
      "id": "K1793",
      "number": 1793,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.manifest",
      "stage": "positive",
      "title": "Program ABI hak manifesti · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: İmaj hash ABI ve hak talebi ayrı alanlardır.",
      "action": "os_program_format_manifest_positive testini oluştur: “ABI V1 RO file hakları”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İmaj hash ABI ve hak talebi ayrı alanlardır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_manifest"
      },
      "dependencies": [
        "K1792"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "ABI V1 RO file hakları",
      "counterexample": "Manifest hash imajla farklı",
      "guestAcceptance": "Doğrulama exec öncesi durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_manifest_positive",
        "negativeName": "os_program_format_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; ABI V1 RO file hakları girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Manifest hash imajla farklı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1793"
    },
    {
      "id": "K1794",
      "number": 1794,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.manifest",
      "stage": "negative",
      "title": "Program ABI hak manifesti · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: İmaj hash ABI ve hak talebi ayrı alanlardır.",
      "action": "os_program_format_manifest_negative testini oluştur: “Manifest hash imajla farklı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İmaj hash ABI ve hak talebi ayrı alanlardır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_manifest"
      },
      "dependencies": [
        "K1793"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "ABI V1 RO file hakları",
      "counterexample": "Manifest hash imajla farklı",
      "guestAcceptance": "Doğrulama exec öncesi durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_manifest_positive",
        "negativeName": "os_program_format_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Manifest hash imajla farklı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Manifest hash imajla farklı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1794"
    },
    {
      "id": "K1795",
      "number": 1795,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.manifest",
      "stage": "integration",
      "title": "Program ABI hak manifesti · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: İmaj hash ABI ve hak talebi ayrı alanlardır.",
      "action": "Tek ürün Image'ında “Doğrulama exec öncesi durur” kabulünü koştur. scripts/os-acceptance/program_format.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İmaj hash ABI ve hak talebi ayrı alanlardır",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_manifest"
      },
      "dependencies": [
        "K1794"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "ABI V1 RO file hakları",
      "counterexample": "Manifest hash imajla farklı",
      "guestAcceptance": "Doğrulama exec öncesi durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_manifest_positive",
        "negativeName": "os_program_format_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1795: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Doğrulama exec öncesi durur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Manifest hash imajla farklı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1795"
    },
    {
      "id": "K1796",
      "number": 1796,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.program_suite",
      "stage": "contract",
      "title": "Native program kabul korpusu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Başarılı test imajı loader saldırısı değildir.",
      "action": "“Native program kabul korpusu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başarılı test imajı loader saldırısı değildir. “Üç gerçek Rust program” kabulü ile “Kesik RWX taşan ELF korpusu” reddini aynı sözleşmeye bağla.",
      "invariant": "Başarılı test imajı loader saldırısı değildir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_program_suite"
      },
      "dependencies": [
        "K1795"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç gerçek Rust program",
      "counterexample": "Kesik RWX taşan ELF korpusu",
      "guestAcceptance": "Başarı ve ret günlükleri ayrı tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_program_suite_positive",
        "negativeName": "os_program_format_program_suite_negative",
        "expectedMarker": "TURKOS/OS/K1800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başarılı test imajı loader saldırısı değildir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kesik RWX taşan ELF korpusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1796"
    },
    {
      "id": "K1797",
      "number": 1797,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.program_suite",
      "stage": "implementation",
      "title": "Native program kabul korpusu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Başarılı test imajı loader saldırısı değildir.",
      "action": "userspace/src/program_format.rs hedefinde os_program_format_program_suite yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başarılı test imajı loader saldırısı değildir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_program_suite"
      },
      "dependencies": [
        "K1796"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç gerçek Rust program",
      "counterexample": "Kesik RWX taşan ELF korpusu",
      "guestAcceptance": "Başarı ve ret günlükleri ayrı tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_program_suite_positive",
        "negativeName": "os_program_format_program_suite_negative",
        "expectedMarker": "TURKOS/OS/K1800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç gerçek Rust program ile Kesik RWX taşan ELF korpusu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kesik RWX taşan ELF korpusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1797"
    },
    {
      "id": "K1798",
      "number": 1798,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.program_suite",
      "stage": "positive",
      "title": "Native program kabul korpusu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Başarılı test imajı loader saldırısı değildir.",
      "action": "os_program_format_program_suite_positive testini oluştur: “Üç gerçek Rust program”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başarılı test imajı loader saldırısı değildir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_program_suite"
      },
      "dependencies": [
        "K1797"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç gerçek Rust program",
      "counterexample": "Kesik RWX taşan ELF korpusu",
      "guestAcceptance": "Başarı ve ret günlükleri ayrı tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_program_suite_positive",
        "negativeName": "os_program_format_program_suite_negative",
        "expectedMarker": "TURKOS/OS/K1800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç gerçek Rust program girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kesik RWX taşan ELF korpusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1798"
    },
    {
      "id": "K1799",
      "number": 1799,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.program_suite",
      "stage": "negative",
      "title": "Native program kabul korpusu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Başarılı test imajı loader saldırısı değildir.",
      "action": "os_program_format_program_suite_negative testini oluştur: “Kesik RWX taşan ELF korpusu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başarılı test imajı loader saldırısı değildir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_program_suite"
      },
      "dependencies": [
        "K1798"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç gerçek Rust program",
      "counterexample": "Kesik RWX taşan ELF korpusu",
      "guestAcceptance": "Başarı ve ret günlükleri ayrı tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_program_suite_positive",
        "negativeName": "os_program_format_program_suite_negative",
        "expectedMarker": "TURKOS/OS/K1800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kesik RWX taşan ELF korpusu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kesik RWX taşan ELF korpusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1799"
    },
    {
      "id": "K1800",
      "number": 1800,
      "phase": 12,
      "module": "program_format",
      "feature": "program_format.program_suite",
      "stage": "integration",
      "title": "Native program kabul korpusu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İlk gömülü programdan diskten çok segmentli native Rust uygulamalara geçilir. Linux ABI ve dinamik bağlayıcı uyumu bu kapının dışındadır. Bu hamlenin koruduğu değişmez: Başarılı test imajı loader saldırısı değildir.",
      "action": "Tek ürün Image'ında “Başarı ve ret günlükleri ayrı tutulur” kabulünü koştur. scripts/os-acceptance/program_format.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başarılı test imajı loader saldırısı değildir",
      "source": {
        "target": "userspace/src/program_format.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_program_format_program_suite"
      },
      "dependencies": [
        "K1799"
      ],
      "phasePrerequisites": [
        11
      ],
      "positive": "Üç gerçek Rust program",
      "counterexample": "Kesik RWX taşan ELF korpusu",
      "guestAcceptance": "Başarı ve ret günlükleri ayrı tutulur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/program_format.rs",
        "harness": "scripts/os-acceptance/program_format.mjs",
        "positiveName": "os_program_format_program_suite_positive",
        "negativeName": "os_program_format_program_suite_negative",
        "expectedMarker": "TURKOS/OS/K1800: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başarı ve ret günlükleri ayrı tutulur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kesik RWX taşan ELF korpusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-12#k1800"
    },
    {
      "id": "K1801",
      "number": 1801,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.rx_pool",
      "stage": "contract",
      "title": "Sahipli RX tampon havuzu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Completion yalnız havuz sahibine döner.",
      "action": "“Sahipli RX tampon havuzu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Completion yalnız havuz sahibine döner. “Dört RX tamponu” kabulü ile “Yabancı used ID” reddini aynı sözleşmeye bağla.",
      "invariant": "Completion yalnız havuz sahibine döner",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_rx_pool"
      },
      "dependencies": [],
      "phasePrerequisites": [
        12
      ],
      "positive": "Dört RX tamponu",
      "counterexample": "Yabancı used ID",
      "guestAcceptance": "Bozuk completion DMA iade etmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_rx_pool_positive",
        "negativeName": "os_net_driver_rx_pool_negative",
        "expectedMarker": "TURKOS/OS/K1805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Completion yalnız havuz sahibine döner kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı used ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1801"
    },
    {
      "id": "K1802",
      "number": 1802,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.rx_pool",
      "stage": "implementation",
      "title": "Sahipli RX tampon havuzu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Completion yalnız havuz sahibine döner.",
      "action": "kernel/src/runtime/net_driver.rs hedefinde os_net_driver_rx_pool yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_pool.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Completion yalnız havuz sahibine döner",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_rx_pool"
      },
      "dependencies": [
        "K1801"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Dört RX tamponu",
      "counterexample": "Yabancı used ID",
      "guestAcceptance": "Bozuk completion DMA iade etmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_rx_pool_positive",
        "negativeName": "os_net_driver_rx_pool_negative",
        "expectedMarker": "TURKOS/OS/K1805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dört RX tamponu ile Yabancı used ID ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı used ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1802"
    },
    {
      "id": "K1803",
      "number": 1803,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.rx_pool",
      "stage": "positive",
      "title": "Sahipli RX tampon havuzu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Completion yalnız havuz sahibine döner.",
      "action": "os_net_driver_rx_pool_positive testini oluştur: “Dört RX tamponu”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Completion yalnız havuz sahibine döner",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_rx_pool"
      },
      "dependencies": [
        "K1802"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Dört RX tamponu",
      "counterexample": "Yabancı used ID",
      "guestAcceptance": "Bozuk completion DMA iade etmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_rx_pool_positive",
        "negativeName": "os_net_driver_rx_pool_negative",
        "expectedMarker": "TURKOS/OS/K1805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dört RX tamponu girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı used ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1803"
    },
    {
      "id": "K1804",
      "number": 1804,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.rx_pool",
      "stage": "negative",
      "title": "Sahipli RX tampon havuzu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Completion yalnız havuz sahibine döner.",
      "action": "os_net_driver_rx_pool_negative testini oluştur: “Yabancı used ID”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Completion yalnız havuz sahibine döner",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_rx_pool"
      },
      "dependencies": [
        "K1803"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Dört RX tamponu",
      "counterexample": "Yabancı used ID",
      "guestAcceptance": "Bozuk completion DMA iade etmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_rx_pool_positive",
        "negativeName": "os_net_driver_rx_pool_negative",
        "expectedMarker": "TURKOS/OS/K1805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı used ID karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı used ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1804"
    },
    {
      "id": "K1805",
      "number": 1805,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.rx_pool",
      "stage": "integration",
      "title": "Sahipli RX tampon havuzu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Completion yalnız havuz sahibine döner.",
      "action": "Tek ürün Image'ında “Bozuk completion DMA iade etmez” kabulünü koştur. scripts/os-acceptance/net_driver.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Completion yalnız havuz sahibine döner",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_rx_pool"
      },
      "dependencies": [
        "K1804"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Dört RX tamponu",
      "counterexample": "Yabancı used ID",
      "guestAcceptance": "Bozuk completion DMA iade etmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_rx_pool_positive",
        "negativeName": "os_net_driver_rx_pool_negative",
        "expectedMarker": "TURKOS/OS/K1805: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk completion DMA iade etmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı used ID” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1805"
    },
    {
      "id": "K1806",
      "number": 1806,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.tx_queue",
      "stage": "contract",
      "title": "TX ömür ve kısa tamamlama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: TX buffer completiona kadar pinlidir.",
      "action": "“TX ömür ve kısa tamamlama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: TX buffer completiona kadar pinlidir. “İki ayrı frame TX” kabulü ile “Erken buffer free” reddini aynı sözleşmeye bağla.",
      "invariant": "TX buffer completiona kadar pinlidir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_tx_queue"
      },
      "dependencies": [
        "K1805"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ayrı frame TX",
      "counterexample": "Erken buffer free",
      "guestAcceptance": "Karşı konuk beklenen frame hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_tx_queue_positive",
        "negativeName": "os_net_driver_tx_queue_negative",
        "expectedMarker": "TURKOS/OS/K1810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu TX buffer completiona kadar pinlidir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Erken buffer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1806"
    },
    {
      "id": "K1807",
      "number": 1807,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.tx_queue",
      "stage": "implementation",
      "title": "TX ömür ve kısa tamamlama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: TX buffer completiona kadar pinlidir.",
      "action": "kernel/src/runtime/net_driver.rs hedefinde os_net_driver_tx_queue yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_pool.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "TX buffer completiona kadar pinlidir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_tx_queue"
      },
      "dependencies": [
        "K1806"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ayrı frame TX",
      "counterexample": "Erken buffer free",
      "guestAcceptance": "Karşı konuk beklenen frame hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_tx_queue_positive",
        "negativeName": "os_net_driver_tx_queue_negative",
        "expectedMarker": "TURKOS/OS/K1810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki ayrı frame TX ile Erken buffer free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Erken buffer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1807"
    },
    {
      "id": "K1808",
      "number": 1808,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.tx_queue",
      "stage": "positive",
      "title": "TX ömür ve kısa tamamlama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: TX buffer completiona kadar pinlidir.",
      "action": "os_net_driver_tx_queue_positive testini oluştur: “İki ayrı frame TX”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "TX buffer completiona kadar pinlidir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_tx_queue"
      },
      "dependencies": [
        "K1807"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ayrı frame TX",
      "counterexample": "Erken buffer free",
      "guestAcceptance": "Karşı konuk beklenen frame hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_tx_queue_positive",
        "negativeName": "os_net_driver_tx_queue_negative",
        "expectedMarker": "TURKOS/OS/K1810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki ayrı frame TX girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Erken buffer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1808"
    },
    {
      "id": "K1809",
      "number": 1809,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.tx_queue",
      "stage": "negative",
      "title": "TX ömür ve kısa tamamlama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: TX buffer completiona kadar pinlidir.",
      "action": "os_net_driver_tx_queue_negative testini oluştur: “Erken buffer free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "TX buffer completiona kadar pinlidir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_tx_queue"
      },
      "dependencies": [
        "K1808"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ayrı frame TX",
      "counterexample": "Erken buffer free",
      "guestAcceptance": "Karşı konuk beklenen frame hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_tx_queue_positive",
        "negativeName": "os_net_driver_tx_queue_negative",
        "expectedMarker": "TURKOS/OS/K1810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Erken buffer free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Erken buffer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1809"
    },
    {
      "id": "K1810",
      "number": 1810,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.tx_queue",
      "stage": "integration",
      "title": "TX ömür ve kısa tamamlama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: TX buffer completiona kadar pinlidir.",
      "action": "Tek ürün Image'ında “Karşı konuk beklenen frame hashini alır” kabulünü koştur. scripts/os-acceptance/net_driver.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "TX buffer completiona kadar pinlidir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_tx_queue"
      },
      "dependencies": [
        "K1809"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ayrı frame TX",
      "counterexample": "Erken buffer free",
      "guestAcceptance": "Karşı konuk beklenen frame hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_tx_queue_positive",
        "negativeName": "os_net_driver_tx_queue_negative",
        "expectedMarker": "TURKOS/OS/K1810: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Karşı konuk beklenen frame hashini alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Erken buffer free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1810"
    },
    {
      "id": "K1811",
      "number": 1811,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.offloads",
      "stage": "contract",
      "title": "Açık no-offload başlangıç · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Pazarlanmayan offload başlığı reddedilir.",
      "action": "“Açık no-offload başlangıç” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Pazarlanmayan offload başlığı reddedilir. “Standart no-offload frame” kabulü ile “CSUM veya GSO flag dayatılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Pazarlanmayan offload başlığı reddedilir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_offloads"
      },
      "dependencies": [
        "K1810"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Standart no-offload frame",
      "counterexample": "CSUM veya GSO flag dayatılır",
      "guestAcceptance": "Parser yalnız desteklediği çerçeveyi alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_offloads_positive",
        "negativeName": "os_net_driver_offloads_negative",
        "expectedMarker": "TURKOS/OS/K1815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Pazarlanmayan offload başlığı reddedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“CSUM veya GSO flag dayatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1811"
    },
    {
      "id": "K1812",
      "number": 1812,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.offloads",
      "stage": "implementation",
      "title": "Açık no-offload başlangıç · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Pazarlanmayan offload başlığı reddedilir.",
      "action": "kernel/src/runtime/net_driver.rs hedefinde os_net_driver_offloads yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_pool.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Pazarlanmayan offload başlığı reddedilir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_offloads"
      },
      "dependencies": [
        "K1811"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Standart no-offload frame",
      "counterexample": "CSUM veya GSO flag dayatılır",
      "guestAcceptance": "Parser yalnız desteklediği çerçeveyi alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_offloads_positive",
        "negativeName": "os_net_driver_offloads_negative",
        "expectedMarker": "TURKOS/OS/K1815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Standart no-offload frame ile CSUM veya GSO flag dayatılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“CSUM veya GSO flag dayatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1812"
    },
    {
      "id": "K1813",
      "number": 1813,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.offloads",
      "stage": "positive",
      "title": "Açık no-offload başlangıç · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Pazarlanmayan offload başlığı reddedilir.",
      "action": "os_net_driver_offloads_positive testini oluştur: “Standart no-offload frame”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Pazarlanmayan offload başlığı reddedilir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_offloads"
      },
      "dependencies": [
        "K1812"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Standart no-offload frame",
      "counterexample": "CSUM veya GSO flag dayatılır",
      "guestAcceptance": "Parser yalnız desteklediği çerçeveyi alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_offloads_positive",
        "negativeName": "os_net_driver_offloads_negative",
        "expectedMarker": "TURKOS/OS/K1815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Standart no-offload frame girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“CSUM veya GSO flag dayatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1813"
    },
    {
      "id": "K1814",
      "number": 1814,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.offloads",
      "stage": "negative",
      "title": "Açık no-offload başlangıç · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Pazarlanmayan offload başlığı reddedilir.",
      "action": "os_net_driver_offloads_negative testini oluştur: “CSUM veya GSO flag dayatılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Pazarlanmayan offload başlığı reddedilir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_offloads"
      },
      "dependencies": [
        "K1813"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Standart no-offload frame",
      "counterexample": "CSUM veya GSO flag dayatılır",
      "guestAcceptance": "Parser yalnız desteklediği çerçeveyi alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_offloads_positive",
        "negativeName": "os_net_driver_offloads_negative",
        "expectedMarker": "TURKOS/OS/K1815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "CSUM veya GSO flag dayatılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“CSUM veya GSO flag dayatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1814"
    },
    {
      "id": "K1815",
      "number": 1815,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.offloads",
      "stage": "integration",
      "title": "Açık no-offload başlangıç · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Pazarlanmayan offload başlığı reddedilir.",
      "action": "Tek ürün Image'ında “Parser yalnız desteklediği çerçeveyi alır” kabulünü koştur. scripts/os-acceptance/net_driver.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Pazarlanmayan offload başlığı reddedilir",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_offloads"
      },
      "dependencies": [
        "K1814"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Standart no-offload frame",
      "counterexample": "CSUM veya GSO flag dayatılır",
      "guestAcceptance": "Parser yalnız desteklediği çerçeveyi alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_offloads_positive",
        "negativeName": "os_net_driver_offloads_negative",
        "expectedMarker": "TURKOS/OS/K1815: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Parser yalnız desteklediği çerçeveyi alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“CSUM veya GSO flag dayatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1815"
    },
    {
      "id": "K1816",
      "number": 1816,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.link_reset",
      "stage": "contract",
      "title": "Link kesintisi ve queue reset · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Eski nesil frame yeni linkte sayılmaz.",
      "action": "“Link kesintisi ve queue reset” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Eski nesil frame yeni linkte sayılmaz. “Reset ardından ikinci trafik” kabulü ile “Eski completion replay” reddini aynı sözleşmeye bağla.",
      "invariant": "Eski nesil frame yeni linkte sayılmaz",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_link_reset"
      },
      "dependencies": [
        "K1815"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Reset ardından ikinci trafik",
      "counterexample": "Eski completion replay",
      "guestAcceptance": "Yeni session eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_link_reset_positive",
        "negativeName": "os_net_driver_link_reset_negative",
        "expectedMarker": "TURKOS/OS/K1820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Eski nesil frame yeni linkte sayılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski completion replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1816"
    },
    {
      "id": "K1817",
      "number": 1817,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.link_reset",
      "stage": "implementation",
      "title": "Link kesintisi ve queue reset · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Eski nesil frame yeni linkte sayılmaz.",
      "action": "kernel/src/runtime/net_driver.rs hedefinde os_net_driver_link_reset yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_pool.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Eski nesil frame yeni linkte sayılmaz",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_link_reset"
      },
      "dependencies": [
        "K1816"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Reset ardından ikinci trafik",
      "counterexample": "Eski completion replay",
      "guestAcceptance": "Yeni session eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_link_reset_positive",
        "negativeName": "os_net_driver_link_reset_negative",
        "expectedMarker": "TURKOS/OS/K1820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Reset ardından ikinci trafik ile Eski completion replay ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski completion replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1817"
    },
    {
      "id": "K1818",
      "number": 1818,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.link_reset",
      "stage": "positive",
      "title": "Link kesintisi ve queue reset · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Eski nesil frame yeni linkte sayılmaz.",
      "action": "os_net_driver_link_reset_positive testini oluştur: “Reset ardından ikinci trafik”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Eski nesil frame yeni linkte sayılmaz",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_link_reset"
      },
      "dependencies": [
        "K1817"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Reset ardından ikinci trafik",
      "counterexample": "Eski completion replay",
      "guestAcceptance": "Yeni session eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_link_reset_positive",
        "negativeName": "os_net_driver_link_reset_negative",
        "expectedMarker": "TURKOS/OS/K1820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Reset ardından ikinci trafik girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski completion replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1818"
    },
    {
      "id": "K1819",
      "number": 1819,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.link_reset",
      "stage": "negative",
      "title": "Link kesintisi ve queue reset · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Eski nesil frame yeni linkte sayılmaz.",
      "action": "os_net_driver_link_reset_negative testini oluştur: “Eski completion replay”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Eski nesil frame yeni linkte sayılmaz",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_link_reset"
      },
      "dependencies": [
        "K1818"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Reset ardından ikinci trafik",
      "counterexample": "Eski completion replay",
      "guestAcceptance": "Yeni session eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_link_reset_positive",
        "negativeName": "os_net_driver_link_reset_negative",
        "expectedMarker": "TURKOS/OS/K1820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski completion replay karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski completion replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1819"
    },
    {
      "id": "K1820",
      "number": 1820,
      "phase": 13,
      "module": "net_driver",
      "feature": "net_driver.link_reset",
      "stage": "integration",
      "title": "Link kesintisi ve queue reset · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Eski nesil frame yeni linkte sayılmaz.",
      "action": "Tek ürün Image'ında “Yeni session eski payloadı almaz” kabulünü koştur. scripts/os-acceptance/net_driver.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Eski nesil frame yeni linkte sayılmaz",
      "source": {
        "target": "kernel/src/runtime/net_driver.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_pool.rs",
        "existingReferenceSha256": "8ab5756166345b5fb5537b6c3d7ef5d1ef864472db2d5e7c302ee1c3fbd98ad2",
        "symbol": "os_net_driver_link_reset"
      },
      "dependencies": [
        "K1819"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Reset ardından ikinci trafik",
      "counterexample": "Eski completion replay",
      "guestAcceptance": "Yeni session eski payloadı almaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/net_driver.rs",
        "harness": "scripts/os-acceptance/net_driver.mjs",
        "positiveName": "os_net_driver_link_reset_positive",
        "negativeName": "os_net_driver_link_reset_negative",
        "expectedMarker": "TURKOS/OS/K1820: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni session eski payloadı almaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski completion replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1820"
    },
    {
      "id": "K1821",
      "number": 1821,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.frame",
      "stage": "contract",
      "title": "Ethernet çerçeve sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık uzunluk ve hedef MAC kontrol edilir.",
      "action": "“Ethernet çerçeve sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başlık uzunluk ve hedef MAC kontrol edilir. “Kendi MAC ve broadcast” kabulü ile “Eksik header veya yabancı unicast” reddini aynı sözleşmeye bağla.",
      "invariant": "Başlık uzunluk ve hedef MAC kontrol edilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_frame"
      },
      "dependencies": [
        "K1820"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Kendi MAC ve broadcast",
      "counterexample": "Eksik header veya yabancı unicast",
      "guestAcceptance": "Yalnız hedeflenen frame üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_frame_positive",
        "negativeName": "os_ethernet_arp_frame_negative",
        "expectedMarker": "TURKOS/OS/K1825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başlık uzunluk ve hedef MAC kontrol edilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eksik header veya yabancı unicast” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1821"
    },
    {
      "id": "K1822",
      "number": 1822,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.frame",
      "stage": "implementation",
      "title": "Ethernet çerçeve sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık uzunluk ve hedef MAC kontrol edilir.",
      "action": "kernel/src/runtime/ethernet_arp.rs hedefinde os_ethernet_arp_frame yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_arp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başlık uzunluk ve hedef MAC kontrol edilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_frame"
      },
      "dependencies": [
        "K1821"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Kendi MAC ve broadcast",
      "counterexample": "Eksik header veya yabancı unicast",
      "guestAcceptance": "Yalnız hedeflenen frame üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_frame_positive",
        "negativeName": "os_ethernet_arp_frame_negative",
        "expectedMarker": "TURKOS/OS/K1825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kendi MAC ve broadcast ile Eksik header veya yabancı unicast ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eksik header veya yabancı unicast” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1822"
    },
    {
      "id": "K1823",
      "number": 1823,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.frame",
      "stage": "positive",
      "title": "Ethernet çerçeve sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık uzunluk ve hedef MAC kontrol edilir.",
      "action": "os_ethernet_arp_frame_positive testini oluştur: “Kendi MAC ve broadcast”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başlık uzunluk ve hedef MAC kontrol edilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_frame"
      },
      "dependencies": [
        "K1822"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Kendi MAC ve broadcast",
      "counterexample": "Eksik header veya yabancı unicast",
      "guestAcceptance": "Yalnız hedeflenen frame üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_frame_positive",
        "negativeName": "os_ethernet_arp_frame_negative",
        "expectedMarker": "TURKOS/OS/K1825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kendi MAC ve broadcast girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eksik header veya yabancı unicast” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1823"
    },
    {
      "id": "K1824",
      "number": 1824,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.frame",
      "stage": "negative",
      "title": "Ethernet çerçeve sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık uzunluk ve hedef MAC kontrol edilir.",
      "action": "os_ethernet_arp_frame_negative testini oluştur: “Eksik header veya yabancı unicast”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başlık uzunluk ve hedef MAC kontrol edilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_frame"
      },
      "dependencies": [
        "K1823"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Kendi MAC ve broadcast",
      "counterexample": "Eksik header veya yabancı unicast",
      "guestAcceptance": "Yalnız hedeflenen frame üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_frame_positive",
        "negativeName": "os_ethernet_arp_frame_negative",
        "expectedMarker": "TURKOS/OS/K1825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik header veya yabancı unicast karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eksik header veya yabancı unicast” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1824"
    },
    {
      "id": "K1825",
      "number": 1825,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.frame",
      "stage": "integration",
      "title": "Ethernet çerçeve sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık uzunluk ve hedef MAC kontrol edilir.",
      "action": "Tek ürün Image'ında “Yalnız hedeflenen frame üst katmana” kabulünü koştur. scripts/os-acceptance/ethernet_arp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başlık uzunluk ve hedef MAC kontrol edilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_frame"
      },
      "dependencies": [
        "K1824"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Kendi MAC ve broadcast",
      "counterexample": "Eksik header veya yabancı unicast",
      "guestAcceptance": "Yalnız hedeflenen frame üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_frame_positive",
        "negativeName": "os_ethernet_arp_frame_negative",
        "expectedMarker": "TURKOS/OS/K1825: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yalnız hedeflenen frame üst katmana; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eksik header veya yabancı unicast” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1825"
    },
    {
      "id": "K1826",
      "number": 1826,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_table",
      "stage": "contract",
      "title": "Sınırlı ARP cache · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kaynak eşlemesi quota ve timeout taşır.",
      "action": "“Sınırlı ARP cache” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kaynak eşlemesi quota ve timeout taşır. “Bilinen iki peer” kabulü ile “Sınırsız sahte peer girdisi” reddini aynı sözleşmeye bağla.",
      "invariant": "Kaynak eşlemesi quota ve timeout taşır",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_table"
      },
      "dependencies": [
        "K1825"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen iki peer",
      "counterexample": "Sınırsız sahte peer girdisi",
      "guestAcceptance": "Cache doluluğu kontrollü ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_table_positive",
        "negativeName": "os_ethernet_arp_arp_table_negative",
        "expectedMarker": "TURKOS/OS/K1830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kaynak eşlemesi quota ve timeout taşır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sınırsız sahte peer girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1826"
    },
    {
      "id": "K1827",
      "number": 1827,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_table",
      "stage": "implementation",
      "title": "Sınırlı ARP cache · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kaynak eşlemesi quota ve timeout taşır.",
      "action": "kernel/src/runtime/ethernet_arp.rs hedefinde os_ethernet_arp_arp_table yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_arp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kaynak eşlemesi quota ve timeout taşır",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_table"
      },
      "dependencies": [
        "K1826"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen iki peer",
      "counterexample": "Sınırsız sahte peer girdisi",
      "guestAcceptance": "Cache doluluğu kontrollü ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_table_positive",
        "negativeName": "os_ethernet_arp_arp_table_negative",
        "expectedMarker": "TURKOS/OS/K1830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen iki peer ile Sınırsız sahte peer girdisi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sınırsız sahte peer girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1827"
    },
    {
      "id": "K1828",
      "number": 1828,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_table",
      "stage": "positive",
      "title": "Sınırlı ARP cache · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kaynak eşlemesi quota ve timeout taşır.",
      "action": "os_ethernet_arp_arp_table_positive testini oluştur: “Bilinen iki peer”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kaynak eşlemesi quota ve timeout taşır",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_table"
      },
      "dependencies": [
        "K1827"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen iki peer",
      "counterexample": "Sınırsız sahte peer girdisi",
      "guestAcceptance": "Cache doluluğu kontrollü ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_table_positive",
        "negativeName": "os_ethernet_arp_arp_table_negative",
        "expectedMarker": "TURKOS/OS/K1830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen iki peer girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sınırsız sahte peer girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1828"
    },
    {
      "id": "K1829",
      "number": 1829,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_table",
      "stage": "negative",
      "title": "Sınırlı ARP cache · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kaynak eşlemesi quota ve timeout taşır.",
      "action": "os_ethernet_arp_arp_table_negative testini oluştur: “Sınırsız sahte peer girdisi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kaynak eşlemesi quota ve timeout taşır",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_table"
      },
      "dependencies": [
        "K1828"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen iki peer",
      "counterexample": "Sınırsız sahte peer girdisi",
      "guestAcceptance": "Cache doluluğu kontrollü ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_table_positive",
        "negativeName": "os_ethernet_arp_arp_table_negative",
        "expectedMarker": "TURKOS/OS/K1830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sınırsız sahte peer girdisi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sınırsız sahte peer girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1829"
    },
    {
      "id": "K1830",
      "number": 1830,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_table",
      "stage": "integration",
      "title": "Sınırlı ARP cache · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kaynak eşlemesi quota ve timeout taşır.",
      "action": "Tek ürün Image'ında “Cache doluluğu kontrollü ret” kabulünü koştur. scripts/os-acceptance/ethernet_arp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kaynak eşlemesi quota ve timeout taşır",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_table"
      },
      "dependencies": [
        "K1829"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen iki peer",
      "counterexample": "Sınırsız sahte peer girdisi",
      "guestAcceptance": "Cache doluluğu kontrollü ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_table_positive",
        "negativeName": "os_ethernet_arp_arp_table_negative",
        "expectedMarker": "TURKOS/OS/K1830: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Cache doluluğu kontrollü ret; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sınırsız sahte peer girdisi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1830"
    },
    {
      "id": "K1831",
      "number": 1831,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_query",
      "stage": "contract",
      "title": "ARP sorgu bekleme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Aynı hedef tekrarları bounded birleştirilir.",
      "action": "“ARP sorgu bekleme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aynı hedef tekrarları bounded birleştirilir. “Aynı IPye üç sender” kabulü ile “Yanıtsız hedef” reddini aynı sözleşmeye bağla.",
      "invariant": "Aynı hedef tekrarları bounded birleştirilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_query"
      },
      "dependencies": [
        "K1830"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Aynı IPye üç sender",
      "counterexample": "Yanıtsız hedef",
      "guestAcceptance": "Timeout bekleyen soketi uyandırır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_query_positive",
        "negativeName": "os_ethernet_arp_arp_query_negative",
        "expectedMarker": "TURKOS/OS/K1835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aynı hedef tekrarları bounded birleştirilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanıtsız hedef” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1831"
    },
    {
      "id": "K1832",
      "number": 1832,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_query",
      "stage": "implementation",
      "title": "ARP sorgu bekleme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Aynı hedef tekrarları bounded birleştirilir.",
      "action": "kernel/src/runtime/ethernet_arp.rs hedefinde os_ethernet_arp_arp_query yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_arp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aynı hedef tekrarları bounded birleştirilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_query"
      },
      "dependencies": [
        "K1831"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Aynı IPye üç sender",
      "counterexample": "Yanıtsız hedef",
      "guestAcceptance": "Timeout bekleyen soketi uyandırır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_query_positive",
        "negativeName": "os_ethernet_arp_arp_query_negative",
        "expectedMarker": "TURKOS/OS/K1835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı IPye üç sender ile Yanıtsız hedef ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanıtsız hedef” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1832"
    },
    {
      "id": "K1833",
      "number": 1833,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_query",
      "stage": "positive",
      "title": "ARP sorgu bekleme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Aynı hedef tekrarları bounded birleştirilir.",
      "action": "os_ethernet_arp_arp_query_positive testini oluştur: “Aynı IPye üç sender”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aynı hedef tekrarları bounded birleştirilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_query"
      },
      "dependencies": [
        "K1832"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Aynı IPye üç sender",
      "counterexample": "Yanıtsız hedef",
      "guestAcceptance": "Timeout bekleyen soketi uyandırır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_query_positive",
        "negativeName": "os_ethernet_arp_arp_query_negative",
        "expectedMarker": "TURKOS/OS/K1835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı IPye üç sender girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanıtsız hedef” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1833"
    },
    {
      "id": "K1834",
      "number": 1834,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_query",
      "stage": "negative",
      "title": "ARP sorgu bekleme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Aynı hedef tekrarları bounded birleştirilir.",
      "action": "os_ethernet_arp_arp_query_negative testini oluştur: “Yanıtsız hedef”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aynı hedef tekrarları bounded birleştirilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_query"
      },
      "dependencies": [
        "K1833"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Aynı IPye üç sender",
      "counterexample": "Yanıtsız hedef",
      "guestAcceptance": "Timeout bekleyen soketi uyandırır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_query_positive",
        "negativeName": "os_ethernet_arp_arp_query_negative",
        "expectedMarker": "TURKOS/OS/K1835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanıtsız hedef karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanıtsız hedef” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1834"
    },
    {
      "id": "K1835",
      "number": 1835,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_query",
      "stage": "integration",
      "title": "ARP sorgu bekleme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Aynı hedef tekrarları bounded birleştirilir.",
      "action": "Tek ürün Image'ında “Timeout bekleyen soketi uyandırır” kabulünü koştur. scripts/os-acceptance/ethernet_arp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aynı hedef tekrarları bounded birleştirilir",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_query"
      },
      "dependencies": [
        "K1834"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Aynı IPye üç sender",
      "counterexample": "Yanıtsız hedef",
      "guestAcceptance": "Timeout bekleyen soketi uyandırır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_query_positive",
        "negativeName": "os_ethernet_arp_arp_query_negative",
        "expectedMarker": "TURKOS/OS/K1835: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Timeout bekleyen soketi uyandırır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanıtsız hedef” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1835"
    },
    {
      "id": "K1836",
      "number": 1836,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_validation",
      "stage": "contract",
      "title": "ARP yanıt doğrulama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: MAC IP ve operation tuple birlikte geçer.",
      "action": "“ARP yanıt doğrulama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: MAC IP ve operation tuple birlikte geçer. “Beklenen queryye uygun reply” kabulü ile “Yabancı hedef veya bozuk length” reddini aynı sözleşmeye bağla.",
      "invariant": "MAC IP ve operation tuple birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_validation"
      },
      "dependencies": [
        "K1835"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Beklenen queryye uygun reply",
      "counterexample": "Yabancı hedef veya bozuk length",
      "guestAcceptance": "Uydurma yanıt komşu kaydı değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_validation_positive",
        "negativeName": "os_ethernet_arp_arp_validation_negative",
        "expectedMarker": "TURKOS/OS/K1840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu MAC IP ve operation tuple birlikte geçer kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı hedef veya bozuk length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1836"
    },
    {
      "id": "K1837",
      "number": 1837,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_validation",
      "stage": "implementation",
      "title": "ARP yanıt doğrulama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: MAC IP ve operation tuple birlikte geçer.",
      "action": "kernel/src/runtime/ethernet_arp.rs hedefinde os_ethernet_arp_arp_validation yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_arp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "MAC IP ve operation tuple birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_validation"
      },
      "dependencies": [
        "K1836"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Beklenen queryye uygun reply",
      "counterexample": "Yabancı hedef veya bozuk length",
      "guestAcceptance": "Uydurma yanıt komşu kaydı değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_validation_positive",
        "negativeName": "os_ethernet_arp_arp_validation_negative",
        "expectedMarker": "TURKOS/OS/K1840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Beklenen queryye uygun reply ile Yabancı hedef veya bozuk length ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı hedef veya bozuk length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1837"
    },
    {
      "id": "K1838",
      "number": 1838,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_validation",
      "stage": "positive",
      "title": "ARP yanıt doğrulama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: MAC IP ve operation tuple birlikte geçer.",
      "action": "os_ethernet_arp_arp_validation_positive testini oluştur: “Beklenen queryye uygun reply”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "MAC IP ve operation tuple birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_validation"
      },
      "dependencies": [
        "K1837"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Beklenen queryye uygun reply",
      "counterexample": "Yabancı hedef veya bozuk length",
      "guestAcceptance": "Uydurma yanıt komşu kaydı değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_validation_positive",
        "negativeName": "os_ethernet_arp_arp_validation_negative",
        "expectedMarker": "TURKOS/OS/K1840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Beklenen queryye uygun reply girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı hedef veya bozuk length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1838"
    },
    {
      "id": "K1839",
      "number": 1839,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_validation",
      "stage": "negative",
      "title": "ARP yanıt doğrulama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: MAC IP ve operation tuple birlikte geçer.",
      "action": "os_ethernet_arp_arp_validation_negative testini oluştur: “Yabancı hedef veya bozuk length”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "MAC IP ve operation tuple birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_validation"
      },
      "dependencies": [
        "K1838"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Beklenen queryye uygun reply",
      "counterexample": "Yabancı hedef veya bozuk length",
      "guestAcceptance": "Uydurma yanıt komşu kaydı değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_validation_positive",
        "negativeName": "os_ethernet_arp_arp_validation_negative",
        "expectedMarker": "TURKOS/OS/K1840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı hedef veya bozuk length karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı hedef veya bozuk length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1839"
    },
    {
      "id": "K1840",
      "number": 1840,
      "phase": 13,
      "module": "ethernet_arp",
      "feature": "ethernet_arp.arp_validation",
      "stage": "integration",
      "title": "ARP yanıt doğrulama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: MAC IP ve operation tuple birlikte geçer.",
      "action": "Tek ürün Image'ında “Uydurma yanıt komşu kaydı değiştirmez” kabulünü koştur. scripts/os-acceptance/ethernet_arp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "MAC IP ve operation tuple birlikte geçer",
      "source": {
        "target": "kernel/src/runtime/ethernet_arp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_arp.rs",
        "existingReferenceSha256": "c64b6844f5c89ad063ea795c1d064a3b5ebc732b859459364fa98e8a006a780d",
        "symbol": "os_ethernet_arp_arp_validation"
      },
      "dependencies": [
        "K1839"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Beklenen queryye uygun reply",
      "counterexample": "Yabancı hedef veya bozuk length",
      "guestAcceptance": "Uydurma yanıt komşu kaydı değiştirmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ethernet_arp.rs",
        "harness": "scripts/os-acceptance/ethernet_arp.mjs",
        "positiveName": "os_ethernet_arp_arp_validation_positive",
        "negativeName": "os_ethernet_arp_arp_validation_negative",
        "expectedMarker": "TURKOS/OS/K1840: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Uydurma yanıt komşu kaydı değiştirmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı hedef veya bozuk length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1840"
    },
    {
      "id": "K1841",
      "number": 1841,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.packet",
      "stage": "contract",
      "title": "IPv4 uzunluk checksum · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık toplam boy ve checksum sınırlıdır.",
      "action": "“IPv4 uzunluk checksum” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başlık toplam boy ve checksum sınırlıdır. “Bilinen checksumlı paket” kabulü ile “IHL veya total length taşması” reddini aynı sözleşmeye bağla.",
      "invariant": "Başlık toplam boy ve checksum sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_packet"
      },
      "dependencies": [
        "K1840"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen checksumlı paket",
      "counterexample": "IHL veya total length taşması",
      "guestAcceptance": "Bozuk paket payload kopyalamadan ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_packet_positive",
        "negativeName": "os_ipv4_packet_negative",
        "expectedMarker": "TURKOS/OS/K1845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başlık toplam boy ve checksum sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“IHL veya total length taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1841"
    },
    {
      "id": "K1842",
      "number": 1842,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.packet",
      "stage": "implementation",
      "title": "IPv4 uzunluk checksum · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık toplam boy ve checksum sınırlıdır.",
      "action": "kernel/src/runtime/ipv4.rs hedefinde os_ipv4_packet yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_ipv4.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başlık toplam boy ve checksum sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_packet"
      },
      "dependencies": [
        "K1841"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen checksumlı paket",
      "counterexample": "IHL veya total length taşması",
      "guestAcceptance": "Bozuk paket payload kopyalamadan ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_packet_positive",
        "negativeName": "os_ipv4_packet_negative",
        "expectedMarker": "TURKOS/OS/K1845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen checksumlı paket ile IHL veya total length taşması ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“IHL veya total length taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1842"
    },
    {
      "id": "K1843",
      "number": 1843,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.packet",
      "stage": "positive",
      "title": "IPv4 uzunluk checksum · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık toplam boy ve checksum sınırlıdır.",
      "action": "os_ipv4_packet_positive testini oluştur: “Bilinen checksumlı paket”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başlık toplam boy ve checksum sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_packet"
      },
      "dependencies": [
        "K1842"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen checksumlı paket",
      "counterexample": "IHL veya total length taşması",
      "guestAcceptance": "Bozuk paket payload kopyalamadan ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_packet_positive",
        "negativeName": "os_ipv4_packet_negative",
        "expectedMarker": "TURKOS/OS/K1845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen checksumlı paket girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“IHL veya total length taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1843"
    },
    {
      "id": "K1844",
      "number": 1844,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.packet",
      "stage": "negative",
      "title": "IPv4 uzunluk checksum · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık toplam boy ve checksum sınırlıdır.",
      "action": "os_ipv4_packet_negative testini oluştur: “IHL veya total length taşması”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başlık toplam boy ve checksum sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_packet"
      },
      "dependencies": [
        "K1843"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen checksumlı paket",
      "counterexample": "IHL veya total length taşması",
      "guestAcceptance": "Bozuk paket payload kopyalamadan ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_packet_positive",
        "negativeName": "os_ipv4_packet_negative",
        "expectedMarker": "TURKOS/OS/K1845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "IHL veya total length taşması karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“IHL veya total length taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1844"
    },
    {
      "id": "K1845",
      "number": 1845,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.packet",
      "stage": "integration",
      "title": "IPv4 uzunluk checksum · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Başlık toplam boy ve checksum sınırlıdır.",
      "action": "Tek ürün Image'ında “Bozuk paket payload kopyalamadan ret” kabulünü koştur. scripts/os-acceptance/ipv4.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başlık toplam boy ve checksum sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_packet"
      },
      "dependencies": [
        "K1844"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bilinen checksumlı paket",
      "counterexample": "IHL veya total length taşması",
      "guestAcceptance": "Bozuk paket payload kopyalamadan ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_packet_positive",
        "negativeName": "os_ipv4_packet_negative",
        "expectedMarker": "TURKOS/OS/K1845: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk paket payload kopyalamadan ret; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“IHL veya total length taşması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1845"
    },
    {
      "id": "K1846",
      "number": 1846,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.routing",
      "stage": "contract",
      "title": "Sınırlı route tablosu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Prefix ve gateway seçim kuralları açıktır.",
      "action": "“Sınırlı route tablosu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Prefix ve gateway seçim kuralları açıktır. “Local subnet ve default route” kabulü ile “Geçersiz mask veya döngü” reddini aynı sözleşmeye bağla.",
      "invariant": "Prefix ve gateway seçim kuralları açıktır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_routing"
      },
      "dependencies": [
        "K1845"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Local subnet ve default route",
      "counterexample": "Geçersiz mask veya döngü",
      "guestAcceptance": "Route yok hatası kullanıcıya döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_routing_positive",
        "negativeName": "os_ipv4_routing_negative",
        "expectedMarker": "TURKOS/OS/K1850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Prefix ve gateway seçim kuralları açıktır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Geçersiz mask veya döngü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1846"
    },
    {
      "id": "K1847",
      "number": 1847,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.routing",
      "stage": "implementation",
      "title": "Sınırlı route tablosu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Prefix ve gateway seçim kuralları açıktır.",
      "action": "kernel/src/runtime/ipv4.rs hedefinde os_ipv4_routing yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_ipv4.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Prefix ve gateway seçim kuralları açıktır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_routing"
      },
      "dependencies": [
        "K1846"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Local subnet ve default route",
      "counterexample": "Geçersiz mask veya döngü",
      "guestAcceptance": "Route yok hatası kullanıcıya döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_routing_positive",
        "negativeName": "os_ipv4_routing_negative",
        "expectedMarker": "TURKOS/OS/K1850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Local subnet ve default route ile Geçersiz mask veya döngü ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Geçersiz mask veya döngü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1847"
    },
    {
      "id": "K1848",
      "number": 1848,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.routing",
      "stage": "positive",
      "title": "Sınırlı route tablosu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Prefix ve gateway seçim kuralları açıktır.",
      "action": "os_ipv4_routing_positive testini oluştur: “Local subnet ve default route”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Prefix ve gateway seçim kuralları açıktır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_routing"
      },
      "dependencies": [
        "K1847"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Local subnet ve default route",
      "counterexample": "Geçersiz mask veya döngü",
      "guestAcceptance": "Route yok hatası kullanıcıya döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_routing_positive",
        "negativeName": "os_ipv4_routing_negative",
        "expectedMarker": "TURKOS/OS/K1850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Local subnet ve default route girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Geçersiz mask veya döngü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1848"
    },
    {
      "id": "K1849",
      "number": 1849,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.routing",
      "stage": "negative",
      "title": "Sınırlı route tablosu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Prefix ve gateway seçim kuralları açıktır.",
      "action": "os_ipv4_routing_negative testini oluştur: “Geçersiz mask veya döngü”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Prefix ve gateway seçim kuralları açıktır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_routing"
      },
      "dependencies": [
        "K1848"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Local subnet ve default route",
      "counterexample": "Geçersiz mask veya döngü",
      "guestAcceptance": "Route yok hatası kullanıcıya döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_routing_positive",
        "negativeName": "os_ipv4_routing_negative",
        "expectedMarker": "TURKOS/OS/K1850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Geçersiz mask veya döngü karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Geçersiz mask veya döngü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1849"
    },
    {
      "id": "K1850",
      "number": 1850,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.routing",
      "stage": "integration",
      "title": "Sınırlı route tablosu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Prefix ve gateway seçim kuralları açıktır.",
      "action": "Tek ürün Image'ında “Route yok hatası kullanıcıya döner” kabulünü koştur. scripts/os-acceptance/ipv4.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Prefix ve gateway seçim kuralları açıktır",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_routing"
      },
      "dependencies": [
        "K1849"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Local subnet ve default route",
      "counterexample": "Geçersiz mask veya döngü",
      "guestAcceptance": "Route yok hatası kullanıcıya döner",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_routing_positive",
        "negativeName": "os_ipv4_routing_negative",
        "expectedMarker": "TURKOS/OS/K1850: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Route yok hatası kullanıcıya döner; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Geçersiz mask veya döngü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1850"
    },
    {
      "id": "K1851",
      "number": 1851,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.fragments",
      "stage": "contract",
      "title": "Fragment sınırlama politikası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: İlk sürüm fragmenti destek yok diye reddeder.",
      "action": "“Fragment sınırlama politikası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İlk sürüm fragmenti destek yok diye reddeder. “Fragment olmayan datagram” kabulü ile “MF flag veya nonzero offset” reddini aynı sözleşmeye bağla.",
      "invariant": "İlk sürüm fragmenti destek yok diye reddeder",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_fragments"
      },
      "dependencies": [
        "K1850"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Fragment olmayan datagram",
      "counterexample": "MF flag veya nonzero offset",
      "guestAcceptance": "Fragment sessiz tam paket sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_fragments_positive",
        "negativeName": "os_ipv4_fragments_negative",
        "expectedMarker": "TURKOS/OS/K1855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İlk sürüm fragmenti destek yok diye reddeder kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“MF flag veya nonzero offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1851"
    },
    {
      "id": "K1852",
      "number": 1852,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.fragments",
      "stage": "implementation",
      "title": "Fragment sınırlama politikası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: İlk sürüm fragmenti destek yok diye reddeder.",
      "action": "kernel/src/runtime/ipv4.rs hedefinde os_ipv4_fragments yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_ipv4.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İlk sürüm fragmenti destek yok diye reddeder",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_fragments"
      },
      "dependencies": [
        "K1851"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Fragment olmayan datagram",
      "counterexample": "MF flag veya nonzero offset",
      "guestAcceptance": "Fragment sessiz tam paket sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_fragments_positive",
        "negativeName": "os_ipv4_fragments_negative",
        "expectedMarker": "TURKOS/OS/K1855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Fragment olmayan datagram ile MF flag veya nonzero offset ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“MF flag veya nonzero offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1852"
    },
    {
      "id": "K1853",
      "number": 1853,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.fragments",
      "stage": "positive",
      "title": "Fragment sınırlama politikası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: İlk sürüm fragmenti destek yok diye reddeder.",
      "action": "os_ipv4_fragments_positive testini oluştur: “Fragment olmayan datagram”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İlk sürüm fragmenti destek yok diye reddeder",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_fragments"
      },
      "dependencies": [
        "K1852"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Fragment olmayan datagram",
      "counterexample": "MF flag veya nonzero offset",
      "guestAcceptance": "Fragment sessiz tam paket sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_fragments_positive",
        "negativeName": "os_ipv4_fragments_negative",
        "expectedMarker": "TURKOS/OS/K1855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Fragment olmayan datagram girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“MF flag veya nonzero offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1853"
    },
    {
      "id": "K1854",
      "number": 1854,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.fragments",
      "stage": "negative",
      "title": "Fragment sınırlama politikası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: İlk sürüm fragmenti destek yok diye reddeder.",
      "action": "os_ipv4_fragments_negative testini oluştur: “MF flag veya nonzero offset”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İlk sürüm fragmenti destek yok diye reddeder",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_fragments"
      },
      "dependencies": [
        "K1853"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Fragment olmayan datagram",
      "counterexample": "MF flag veya nonzero offset",
      "guestAcceptance": "Fragment sessiz tam paket sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_fragments_positive",
        "negativeName": "os_ipv4_fragments_negative",
        "expectedMarker": "TURKOS/OS/K1855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "MF flag veya nonzero offset karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“MF flag veya nonzero offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1854"
    },
    {
      "id": "K1855",
      "number": 1855,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.fragments",
      "stage": "integration",
      "title": "Fragment sınırlama politikası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: İlk sürüm fragmenti destek yok diye reddeder.",
      "action": "Tek ürün Image'ında “Fragment sessiz tam paket sayılmaz” kabulünü koştur. scripts/os-acceptance/ipv4.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İlk sürüm fragmenti destek yok diye reddeder",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_fragments"
      },
      "dependencies": [
        "K1854"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Fragment olmayan datagram",
      "counterexample": "MF flag veya nonzero offset",
      "guestAcceptance": "Fragment sessiz tam paket sayılmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_fragments_positive",
        "negativeName": "os_ipv4_fragments_negative",
        "expectedMarker": "TURKOS/OS/K1855: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Fragment sessiz tam paket sayılmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“MF flag veya nonzero offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1855"
    },
    {
      "id": "K1856",
      "number": 1856,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.icmp",
      "stage": "contract",
      "title": "ICMP echo ve hata oranı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Reply boy ve rate limiti korunur.",
      "action": "“ICMP echo ve hata oranı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Reply boy ve rate limiti korunur. “Geçerli echo request” kabulü ile “Echo fırtınası veya bozuk checksum” reddini aynı sözleşmeye bağla.",
      "invariant": "Reply boy ve rate limiti korunur",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_icmp"
      },
      "dependencies": [
        "K1855"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Geçerli echo request",
      "counterexample": "Echo fırtınası veya bozuk checksum",
      "guestAcceptance": "Sınırlı reply ve drop muhasebesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_icmp_positive",
        "negativeName": "os_ipv4_icmp_negative",
        "expectedMarker": "TURKOS/OS/K1860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Reply boy ve rate limiti korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Echo fırtınası veya bozuk checksum” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1856"
    },
    {
      "id": "K1857",
      "number": 1857,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.icmp",
      "stage": "implementation",
      "title": "ICMP echo ve hata oranı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Reply boy ve rate limiti korunur.",
      "action": "kernel/src/runtime/ipv4.rs hedefinde os_ipv4_icmp yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_ipv4.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Reply boy ve rate limiti korunur",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_icmp"
      },
      "dependencies": [
        "K1856"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Geçerli echo request",
      "counterexample": "Echo fırtınası veya bozuk checksum",
      "guestAcceptance": "Sınırlı reply ve drop muhasebesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_icmp_positive",
        "negativeName": "os_ipv4_icmp_negative",
        "expectedMarker": "TURKOS/OS/K1860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçerli echo request ile Echo fırtınası veya bozuk checksum ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Echo fırtınası veya bozuk checksum” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1857"
    },
    {
      "id": "K1858",
      "number": 1858,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.icmp",
      "stage": "positive",
      "title": "ICMP echo ve hata oranı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Reply boy ve rate limiti korunur.",
      "action": "os_ipv4_icmp_positive testini oluştur: “Geçerli echo request”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Reply boy ve rate limiti korunur",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_icmp"
      },
      "dependencies": [
        "K1857"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Geçerli echo request",
      "counterexample": "Echo fırtınası veya bozuk checksum",
      "guestAcceptance": "Sınırlı reply ve drop muhasebesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_icmp_positive",
        "negativeName": "os_ipv4_icmp_negative",
        "expectedMarker": "TURKOS/OS/K1860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçerli echo request girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Echo fırtınası veya bozuk checksum” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1858"
    },
    {
      "id": "K1859",
      "number": 1859,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.icmp",
      "stage": "negative",
      "title": "ICMP echo ve hata oranı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Reply boy ve rate limiti korunur.",
      "action": "os_ipv4_icmp_negative testini oluştur: “Echo fırtınası veya bozuk checksum”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Reply boy ve rate limiti korunur",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_icmp"
      },
      "dependencies": [
        "K1858"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Geçerli echo request",
      "counterexample": "Echo fırtınası veya bozuk checksum",
      "guestAcceptance": "Sınırlı reply ve drop muhasebesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_icmp_positive",
        "negativeName": "os_ipv4_icmp_negative",
        "expectedMarker": "TURKOS/OS/K1860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Echo fırtınası veya bozuk checksum karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Echo fırtınası veya bozuk checksum” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1859"
    },
    {
      "id": "K1860",
      "number": 1860,
      "phase": 13,
      "module": "ipv4",
      "feature": "ipv4.icmp",
      "stage": "integration",
      "title": "ICMP echo ve hata oranı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Reply boy ve rate limiti korunur.",
      "action": "Tek ürün Image'ında “Sınırlı reply ve drop muhasebesi” kabulünü koştur. scripts/os-acceptance/ipv4.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Reply boy ve rate limiti korunur",
      "source": {
        "target": "kernel/src/runtime/ipv4.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_ipv4.rs",
        "existingReferenceSha256": "4b51aa33ad9fd00f586026eb91ca562ccf96b17f488abf497dc97d9a4220533b",
        "symbol": "os_ipv4_icmp"
      },
      "dependencies": [
        "K1859"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Geçerli echo request",
      "counterexample": "Echo fırtınası veya bozuk checksum",
      "guestAcceptance": "Sınırlı reply ve drop muhasebesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/ipv4.rs",
        "harness": "scripts/os-acceptance/ipv4.mjs",
        "positiveName": "os_ipv4_icmp_positive",
        "negativeName": "os_ipv4_icmp_negative",
        "expectedMarker": "TURKOS/OS/K1860: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sınırlı reply ve drop muhasebesi; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Echo fırtınası veya bozuk checksum” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1860"
    },
    {
      "id": "K1861",
      "number": 1861,
      "phase": 13,
      "module": "udp",
      "feature": "udp.binding",
      "stage": "contract",
      "title": "Socket bind hak ve port · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Port sahipliği principal ile kaydedilir.",
      "action": "“Socket bind hak ve port” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Port sahipliği principal ile kaydedilir. “İki farklı local port” kabulü ile “Yetkisiz privileged port” reddini aynı sözleşmeye bağla.",
      "invariant": "Port sahipliği principal ile kaydedilir",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_binding"
      },
      "dependencies": [
        "K1860"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki farklı local port",
      "counterexample": "Yetkisiz privileged port",
      "guestAcceptance": "EACCES diğer bindı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_binding_positive",
        "negativeName": "os_udp_binding_negative",
        "expectedMarker": "TURKOS/OS/K1865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Port sahipliği principal ile kaydedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yetkisiz privileged port” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1861"
    },
    {
      "id": "K1862",
      "number": 1862,
      "phase": 13,
      "module": "udp",
      "feature": "udp.binding",
      "stage": "implementation",
      "title": "Socket bind hak ve port · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Port sahipliği principal ile kaydedilir.",
      "action": "kernel/src/runtime/udp.rs hedefinde os_udp_binding yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_frame.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Port sahipliği principal ile kaydedilir",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_binding"
      },
      "dependencies": [
        "K1861"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki farklı local port",
      "counterexample": "Yetkisiz privileged port",
      "guestAcceptance": "EACCES diğer bindı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_binding_positive",
        "negativeName": "os_udp_binding_negative",
        "expectedMarker": "TURKOS/OS/K1865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki farklı local port ile Yetkisiz privileged port ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yetkisiz privileged port” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1862"
    },
    {
      "id": "K1863",
      "number": 1863,
      "phase": 13,
      "module": "udp",
      "feature": "udp.binding",
      "stage": "positive",
      "title": "Socket bind hak ve port · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Port sahipliği principal ile kaydedilir.",
      "action": "os_udp_binding_positive testini oluştur: “İki farklı local port”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Port sahipliği principal ile kaydedilir",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_binding"
      },
      "dependencies": [
        "K1862"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki farklı local port",
      "counterexample": "Yetkisiz privileged port",
      "guestAcceptance": "EACCES diğer bindı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_binding_positive",
        "negativeName": "os_udp_binding_negative",
        "expectedMarker": "TURKOS/OS/K1865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki farklı local port girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yetkisiz privileged port” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1863"
    },
    {
      "id": "K1864",
      "number": 1864,
      "phase": 13,
      "module": "udp",
      "feature": "udp.binding",
      "stage": "negative",
      "title": "Socket bind hak ve port · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Port sahipliği principal ile kaydedilir.",
      "action": "os_udp_binding_negative testini oluştur: “Yetkisiz privileged port”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Port sahipliği principal ile kaydedilir",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_binding"
      },
      "dependencies": [
        "K1863"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki farklı local port",
      "counterexample": "Yetkisiz privileged port",
      "guestAcceptance": "EACCES diğer bindı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_binding_positive",
        "negativeName": "os_udp_binding_negative",
        "expectedMarker": "TURKOS/OS/K1865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yetkisiz privileged port karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yetkisiz privileged port” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1864"
    },
    {
      "id": "K1865",
      "number": 1865,
      "phase": 13,
      "module": "udp",
      "feature": "udp.binding",
      "stage": "integration",
      "title": "Socket bind hak ve port · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Port sahipliği principal ile kaydedilir.",
      "action": "Tek ürün Image'ında “EACCES diğer bindı bozmaz” kabulünü koştur. scripts/os-acceptance/udp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Port sahipliği principal ile kaydedilir",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_binding"
      },
      "dependencies": [
        "K1864"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki farklı local port",
      "counterexample": "Yetkisiz privileged port",
      "guestAcceptance": "EACCES diğer bindı bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_binding_positive",
        "negativeName": "os_udp_binding_negative",
        "expectedMarker": "TURKOS/OS/K1865: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EACCES diğer bindı bozmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yetkisiz privileged port” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1865"
    },
    {
      "id": "K1866",
      "number": 1866,
      "phase": 13,
      "module": "udp",
      "feature": "udp.datagrams",
      "stage": "contract",
      "title": "UDP datagram sınırları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Length checksum ve hedef tuple geçer.",
      "action": "“UDP datagram sınırları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Length checksum ve hedef tuple geçer. “Boş ve küçük payload” kabulü ile “UDP length IP payloadı aşar” reddini aynı sözleşmeye bağla.",
      "invariant": "Length checksum ve hedef tuple geçer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_datagrams"
      },
      "dependencies": [
        "K1865"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Boş ve küçük payload",
      "counterexample": "UDP length IP payloadı aşar",
      "guestAcceptance": "Alıcı tam tek datagram alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_datagrams_positive",
        "negativeName": "os_udp_datagrams_negative",
        "expectedMarker": "TURKOS/OS/K1870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Length checksum ve hedef tuple geçer kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“UDP length IP payloadı aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1866"
    },
    {
      "id": "K1867",
      "number": 1867,
      "phase": 13,
      "module": "udp",
      "feature": "udp.datagrams",
      "stage": "implementation",
      "title": "UDP datagram sınırları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Length checksum ve hedef tuple geçer.",
      "action": "kernel/src/runtime/udp.rs hedefinde os_udp_datagrams yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_frame.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Length checksum ve hedef tuple geçer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_datagrams"
      },
      "dependencies": [
        "K1866"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Boş ve küçük payload",
      "counterexample": "UDP length IP payloadı aşar",
      "guestAcceptance": "Alıcı tam tek datagram alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_datagrams_positive",
        "negativeName": "os_udp_datagrams_negative",
        "expectedMarker": "TURKOS/OS/K1870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş ve küçük payload ile UDP length IP payloadı aşar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“UDP length IP payloadı aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1867"
    },
    {
      "id": "K1868",
      "number": 1868,
      "phase": 13,
      "module": "udp",
      "feature": "udp.datagrams",
      "stage": "positive",
      "title": "UDP datagram sınırları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Length checksum ve hedef tuple geçer.",
      "action": "os_udp_datagrams_positive testini oluştur: “Boş ve küçük payload”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Length checksum ve hedef tuple geçer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_datagrams"
      },
      "dependencies": [
        "K1867"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Boş ve küçük payload",
      "counterexample": "UDP length IP payloadı aşar",
      "guestAcceptance": "Alıcı tam tek datagram alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_datagrams_positive",
        "negativeName": "os_udp_datagrams_negative",
        "expectedMarker": "TURKOS/OS/K1870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş ve küçük payload girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“UDP length IP payloadı aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1868"
    },
    {
      "id": "K1869",
      "number": 1869,
      "phase": 13,
      "module": "udp",
      "feature": "udp.datagrams",
      "stage": "negative",
      "title": "UDP datagram sınırları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Length checksum ve hedef tuple geçer.",
      "action": "os_udp_datagrams_negative testini oluştur: “UDP length IP payloadı aşar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Length checksum ve hedef tuple geçer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_datagrams"
      },
      "dependencies": [
        "K1868"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Boş ve küçük payload",
      "counterexample": "UDP length IP payloadı aşar",
      "guestAcceptance": "Alıcı tam tek datagram alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_datagrams_positive",
        "negativeName": "os_udp_datagrams_negative",
        "expectedMarker": "TURKOS/OS/K1870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "UDP length IP payloadı aşar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“UDP length IP payloadı aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1869"
    },
    {
      "id": "K1870",
      "number": 1870,
      "phase": 13,
      "module": "udp",
      "feature": "udp.datagrams",
      "stage": "integration",
      "title": "UDP datagram sınırları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Length checksum ve hedef tuple geçer.",
      "action": "Tek ürün Image'ında “Alıcı tam tek datagram alır” kabulünü koştur. scripts/os-acceptance/udp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Length checksum ve hedef tuple geçer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_datagrams"
      },
      "dependencies": [
        "K1869"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Boş ve küçük payload",
      "counterexample": "UDP length IP payloadı aşar",
      "guestAcceptance": "Alıcı tam tek datagram alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_datagrams_positive",
        "negativeName": "os_udp_datagrams_negative",
        "expectedMarker": "TURKOS/OS/K1870: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Alıcı tam tek datagram alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“UDP length IP payloadı aşar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1870"
    },
    {
      "id": "K1871",
      "number": 1871,
      "phase": 13,
      "module": "udp",
      "feature": "udp.buffering",
      "stage": "contract",
      "title": "Socket RX kuyruk bütçesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Datagram partial teslim edilmez.",
      "action": "“Socket RX kuyruk bütçesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Datagram partial teslim edilmez. “Üç datagram ve kısa user buffer” kabulü ile “Kuyruk kapasitesi artı bir” reddini aynı sözleşmeye bağla.",
      "invariant": "Datagram partial teslim edilmez",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_buffering"
      },
      "dependencies": [
        "K1870"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Üç datagram ve kısa user buffer",
      "counterexample": "Kuyruk kapasitesi artı bir",
      "guestAcceptance": "Truncation veya ret açık etiketli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_buffering_positive",
        "negativeName": "os_udp_buffering_negative",
        "expectedMarker": "TURKOS/OS/K1875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Datagram partial teslim edilmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kuyruk kapasitesi artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1871"
    },
    {
      "id": "K1872",
      "number": 1872,
      "phase": 13,
      "module": "udp",
      "feature": "udp.buffering",
      "stage": "implementation",
      "title": "Socket RX kuyruk bütçesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Datagram partial teslim edilmez.",
      "action": "kernel/src/runtime/udp.rs hedefinde os_udp_buffering yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_frame.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Datagram partial teslim edilmez",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_buffering"
      },
      "dependencies": [
        "K1871"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Üç datagram ve kısa user buffer",
      "counterexample": "Kuyruk kapasitesi artı bir",
      "guestAcceptance": "Truncation veya ret açık etiketli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_buffering_positive",
        "negativeName": "os_udp_buffering_negative",
        "expectedMarker": "TURKOS/OS/K1875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç datagram ve kısa user buffer ile Kuyruk kapasitesi artı bir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kuyruk kapasitesi artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1872"
    },
    {
      "id": "K1873",
      "number": 1873,
      "phase": 13,
      "module": "udp",
      "feature": "udp.buffering",
      "stage": "positive",
      "title": "Socket RX kuyruk bütçesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Datagram partial teslim edilmez.",
      "action": "os_udp_buffering_positive testini oluştur: “Üç datagram ve kısa user buffer”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Datagram partial teslim edilmez",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_buffering"
      },
      "dependencies": [
        "K1872"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Üç datagram ve kısa user buffer",
      "counterexample": "Kuyruk kapasitesi artı bir",
      "guestAcceptance": "Truncation veya ret açık etiketli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_buffering_positive",
        "negativeName": "os_udp_buffering_negative",
        "expectedMarker": "TURKOS/OS/K1875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç datagram ve kısa user buffer girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kuyruk kapasitesi artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1873"
    },
    {
      "id": "K1874",
      "number": 1874,
      "phase": 13,
      "module": "udp",
      "feature": "udp.buffering",
      "stage": "negative",
      "title": "Socket RX kuyruk bütçesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Datagram partial teslim edilmez.",
      "action": "os_udp_buffering_negative testini oluştur: “Kuyruk kapasitesi artı bir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Datagram partial teslim edilmez",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_buffering"
      },
      "dependencies": [
        "K1873"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Üç datagram ve kısa user buffer",
      "counterexample": "Kuyruk kapasitesi artı bir",
      "guestAcceptance": "Truncation veya ret açık etiketli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_buffering_positive",
        "negativeName": "os_udp_buffering_negative",
        "expectedMarker": "TURKOS/OS/K1875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kuyruk kapasitesi artı bir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kuyruk kapasitesi artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1874"
    },
    {
      "id": "K1875",
      "number": 1875,
      "phase": 13,
      "module": "udp",
      "feature": "udp.buffering",
      "stage": "integration",
      "title": "Socket RX kuyruk bütçesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Datagram partial teslim edilmez.",
      "action": "Tek ürün Image'ında “Truncation veya ret açık etiketli” kabulünü koştur. scripts/os-acceptance/udp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Datagram partial teslim edilmez",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_buffering"
      },
      "dependencies": [
        "K1874"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Üç datagram ve kısa user buffer",
      "counterexample": "Kuyruk kapasitesi artı bir",
      "guestAcceptance": "Truncation veya ret açık etiketli",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_buffering_positive",
        "negativeName": "os_udp_buffering_negative",
        "expectedMarker": "TURKOS/OS/K1875: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Truncation veya ret açık etiketli; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kuyruk kapasitesi artı bir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1875"
    },
    {
      "id": "K1876",
      "number": 1876,
      "phase": 13,
      "module": "udp",
      "feature": "udp.close_wait",
      "stage": "contract",
      "title": "Socket wait timeout close · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Close waiterı tanımlı sonuçla çözer.",
      "action": "“Socket wait timeout close” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Close waiterı tanımlı sonuçla çözer. “Recv beklerken close” kabulü ile “Ölü socket nesli wake” reddini aynı sözleşmeye bağla.",
      "invariant": "Close waiterı tanımlı sonuçla çözer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_close_wait"
      },
      "dependencies": [
        "K1875"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Recv beklerken close",
      "counterexample": "Ölü socket nesli wake",
      "guestAcceptance": "Tek dönüş ve buffer iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_close_wait_positive",
        "negativeName": "os_udp_close_wait_negative",
        "expectedMarker": "TURKOS/OS/K1880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Close waiterı tanımlı sonuçla çözer kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ölü socket nesli wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1876"
    },
    {
      "id": "K1877",
      "number": 1877,
      "phase": 13,
      "module": "udp",
      "feature": "udp.close_wait",
      "stage": "implementation",
      "title": "Socket wait timeout close · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Close waiterı tanımlı sonuçla çözer.",
      "action": "kernel/src/runtime/udp.rs hedefinde os_udp_close_wait yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_frame.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Close waiterı tanımlı sonuçla çözer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_close_wait"
      },
      "dependencies": [
        "K1876"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Recv beklerken close",
      "counterexample": "Ölü socket nesli wake",
      "guestAcceptance": "Tek dönüş ve buffer iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_close_wait_positive",
        "negativeName": "os_udp_close_wait_negative",
        "expectedMarker": "TURKOS/OS/K1880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Recv beklerken close ile Ölü socket nesli wake ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ölü socket nesli wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1877"
    },
    {
      "id": "K1878",
      "number": 1878,
      "phase": 13,
      "module": "udp",
      "feature": "udp.close_wait",
      "stage": "positive",
      "title": "Socket wait timeout close · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Close waiterı tanımlı sonuçla çözer.",
      "action": "os_udp_close_wait_positive testini oluştur: “Recv beklerken close”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Close waiterı tanımlı sonuçla çözer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_close_wait"
      },
      "dependencies": [
        "K1877"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Recv beklerken close",
      "counterexample": "Ölü socket nesli wake",
      "guestAcceptance": "Tek dönüş ve buffer iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_close_wait_positive",
        "negativeName": "os_udp_close_wait_negative",
        "expectedMarker": "TURKOS/OS/K1880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Recv beklerken close girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ölü socket nesli wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1878"
    },
    {
      "id": "K1879",
      "number": 1879,
      "phase": 13,
      "module": "udp",
      "feature": "udp.close_wait",
      "stage": "negative",
      "title": "Socket wait timeout close · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Close waiterı tanımlı sonuçla çözer.",
      "action": "os_udp_close_wait_negative testini oluştur: “Ölü socket nesli wake”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Close waiterı tanımlı sonuçla çözer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_close_wait"
      },
      "dependencies": [
        "K1878"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Recv beklerken close",
      "counterexample": "Ölü socket nesli wake",
      "guestAcceptance": "Tek dönüş ve buffer iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_close_wait_positive",
        "negativeName": "os_udp_close_wait_negative",
        "expectedMarker": "TURKOS/OS/K1880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ölü socket nesli wake karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ölü socket nesli wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1879"
    },
    {
      "id": "K1880",
      "number": 1880,
      "phase": 13,
      "module": "udp",
      "feature": "udp.close_wait",
      "stage": "integration",
      "title": "Socket wait timeout close · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Close waiterı tanımlı sonuçla çözer.",
      "action": "Tek ürün Image'ında “Tek dönüş ve buffer iadesi” kabulünü koştur. scripts/os-acceptance/udp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Close waiterı tanımlı sonuçla çözer",
      "source": {
        "target": "kernel/src/runtime/udp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_udp_close_wait"
      },
      "dependencies": [
        "K1879"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Recv beklerken close",
      "counterexample": "Ölü socket nesli wake",
      "guestAcceptance": "Tek dönüş ve buffer iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/udp.rs",
        "harness": "scripts/os-acceptance/udp.mjs",
        "positiveName": "os_udp_close_wait_positive",
        "negativeName": "os_udp_close_wait_negative",
        "expectedMarker": "TURKOS/OS/K1880: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek dönüş ve buffer iadesi; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ölü socket nesli wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1880"
    },
    {
      "id": "K1881",
      "number": 1881,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.handshake",
      "stage": "contract",
      "title": "SYN SYNACK ACK geçişleri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Tuple ve sequence bütün geçişleri sınırlar.",
      "action": "“SYN SYNACK ACK geçişleri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Tuple ve sequence bütün geçişleri sınırlar. “İzole peerle üçlü handshake” kabulü ile “Yanlış ACK veya eski SYNACK” reddini aynı sözleşmeye bağla.",
      "invariant": "Tuple ve sequence bütün geçişleri sınırlar",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_handshake"
      },
      "dependencies": [
        "K1880"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İzole peerle üçlü handshake",
      "counterexample": "Yanlış ACK veya eski SYNACK",
      "guestAcceptance": "Bozuk paket sessionı kuramaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_handshake_positive",
        "negativeName": "os_tcp_handshake_negative",
        "expectedMarker": "TURKOS/OS/K1885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Tuple ve sequence bütün geçişleri sınırlar kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanlış ACK veya eski SYNACK” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1881"
    },
    {
      "id": "K1882",
      "number": 1882,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.handshake",
      "stage": "implementation",
      "title": "SYN SYNACK ACK geçişleri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Tuple ve sequence bütün geçişleri sınırlar.",
      "action": "kernel/src/runtime/tcp.rs hedefinde os_tcp_handshake yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_frame.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Tuple ve sequence bütün geçişleri sınırlar",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_handshake"
      },
      "dependencies": [
        "K1881"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İzole peerle üçlü handshake",
      "counterexample": "Yanlış ACK veya eski SYNACK",
      "guestAcceptance": "Bozuk paket sessionı kuramaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_handshake_positive",
        "negativeName": "os_tcp_handshake_negative",
        "expectedMarker": "TURKOS/OS/K1885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İzole peerle üçlü handshake ile Yanlış ACK veya eski SYNACK ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanlış ACK veya eski SYNACK” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1882"
    },
    {
      "id": "K1883",
      "number": 1883,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.handshake",
      "stage": "positive",
      "title": "SYN SYNACK ACK geçişleri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Tuple ve sequence bütün geçişleri sınırlar.",
      "action": "os_tcp_handshake_positive testini oluştur: “İzole peerle üçlü handshake”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Tuple ve sequence bütün geçişleri sınırlar",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_handshake"
      },
      "dependencies": [
        "K1882"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İzole peerle üçlü handshake",
      "counterexample": "Yanlış ACK veya eski SYNACK",
      "guestAcceptance": "Bozuk paket sessionı kuramaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_handshake_positive",
        "negativeName": "os_tcp_handshake_negative",
        "expectedMarker": "TURKOS/OS/K1885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İzole peerle üçlü handshake girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanlış ACK veya eski SYNACK” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1883"
    },
    {
      "id": "K1884",
      "number": 1884,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.handshake",
      "stage": "negative",
      "title": "SYN SYNACK ACK geçişleri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Tuple ve sequence bütün geçişleri sınırlar.",
      "action": "os_tcp_handshake_negative testini oluştur: “Yanlış ACK veya eski SYNACK”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Tuple ve sequence bütün geçişleri sınırlar",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_handshake"
      },
      "dependencies": [
        "K1883"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İzole peerle üçlü handshake",
      "counterexample": "Yanlış ACK veya eski SYNACK",
      "guestAcceptance": "Bozuk paket sessionı kuramaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_handshake_positive",
        "negativeName": "os_tcp_handshake_negative",
        "expectedMarker": "TURKOS/OS/K1885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış ACK veya eski SYNACK karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanlış ACK veya eski SYNACK” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1884"
    },
    {
      "id": "K1885",
      "number": 1885,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.handshake",
      "stage": "integration",
      "title": "SYN SYNACK ACK geçişleri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Tuple ve sequence bütün geçişleri sınırlar.",
      "action": "Tek ürün Image'ında “Bozuk paket sessionı kuramaz” kabulünü koştur. scripts/os-acceptance/tcp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Tuple ve sequence bütün geçişleri sınırlar",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_handshake"
      },
      "dependencies": [
        "K1884"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İzole peerle üçlü handshake",
      "counterexample": "Yanlış ACK veya eski SYNACK",
      "guestAcceptance": "Bozuk paket sessionı kuramaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_handshake_positive",
        "negativeName": "os_tcp_handshake_negative",
        "expectedMarker": "TURKOS/OS/K1885: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk paket sessionı kuramaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanlış ACK veya eski SYNACK” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1885"
    },
    {
      "id": "K1886",
      "number": 1886,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.stream",
      "stage": "contract",
      "title": "TCP receive sıra ve pencere · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Byte akışı duplicate ve out of orderı ayırır.",
      "action": "“TCP receive sıra ve pencere” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Byte akışı duplicate ve out of orderı ayırır. “İki ters sıralı küçük segment” kabulü ile “Pencere dışı sequence” reddini aynı sözleşmeye bağla.",
      "invariant": "Byte akışı duplicate ve out of orderı ayırır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_stream"
      },
      "dependencies": [
        "K1885"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ters sıralı küçük segment",
      "counterexample": "Pencere dışı sequence",
      "guestAcceptance": "Kullanıcı aynı sıralı byte hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_stream_positive",
        "negativeName": "os_tcp_stream_negative",
        "expectedMarker": "TURKOS/OS/K1890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Byte akışı duplicate ve out of orderı ayırır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Pencere dışı sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1886"
    },
    {
      "id": "K1887",
      "number": 1887,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.stream",
      "stage": "implementation",
      "title": "TCP receive sıra ve pencere · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Byte akışı duplicate ve out of orderı ayırır.",
      "action": "kernel/src/runtime/tcp.rs hedefinde os_tcp_stream yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_frame.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Byte akışı duplicate ve out of orderı ayırır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_stream"
      },
      "dependencies": [
        "K1886"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ters sıralı küçük segment",
      "counterexample": "Pencere dışı sequence",
      "guestAcceptance": "Kullanıcı aynı sıralı byte hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_stream_positive",
        "negativeName": "os_tcp_stream_negative",
        "expectedMarker": "TURKOS/OS/K1890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki ters sıralı küçük segment ile Pencere dışı sequence ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Pencere dışı sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1887"
    },
    {
      "id": "K1888",
      "number": 1888,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.stream",
      "stage": "positive",
      "title": "TCP receive sıra ve pencere · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Byte akışı duplicate ve out of orderı ayırır.",
      "action": "os_tcp_stream_positive testini oluştur: “İki ters sıralı küçük segment”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Byte akışı duplicate ve out of orderı ayırır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_stream"
      },
      "dependencies": [
        "K1887"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ters sıralı küçük segment",
      "counterexample": "Pencere dışı sequence",
      "guestAcceptance": "Kullanıcı aynı sıralı byte hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_stream_positive",
        "negativeName": "os_tcp_stream_negative",
        "expectedMarker": "TURKOS/OS/K1890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki ters sıralı küçük segment girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Pencere dışı sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1888"
    },
    {
      "id": "K1889",
      "number": 1889,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.stream",
      "stage": "negative",
      "title": "TCP receive sıra ve pencere · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Byte akışı duplicate ve out of orderı ayırır.",
      "action": "os_tcp_stream_negative testini oluştur: “Pencere dışı sequence”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Byte akışı duplicate ve out of orderı ayırır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_stream"
      },
      "dependencies": [
        "K1888"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ters sıralı küçük segment",
      "counterexample": "Pencere dışı sequence",
      "guestAcceptance": "Kullanıcı aynı sıralı byte hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_stream_positive",
        "negativeName": "os_tcp_stream_negative",
        "expectedMarker": "TURKOS/OS/K1890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Pencere dışı sequence karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Pencere dışı sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1889"
    },
    {
      "id": "K1890",
      "number": 1890,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.stream",
      "stage": "integration",
      "title": "TCP receive sıra ve pencere · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Byte akışı duplicate ve out of orderı ayırır.",
      "action": "Tek ürün Image'ında “Kullanıcı aynı sıralı byte hashini alır” kabulünü koştur. scripts/os-acceptance/tcp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Byte akışı duplicate ve out of orderı ayırır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_stream"
      },
      "dependencies": [
        "K1889"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki ters sıralı küçük segment",
      "counterexample": "Pencere dışı sequence",
      "guestAcceptance": "Kullanıcı aynı sıralı byte hashini alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_stream_positive",
        "negativeName": "os_tcp_stream_negative",
        "expectedMarker": "TURKOS/OS/K1890: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kullanıcı aynı sıralı byte hashini alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Pencere dışı sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1890"
    },
    {
      "id": "K1891",
      "number": 1891,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.retransmit",
      "stage": "contract",
      "title": "Bounded retransmission timer · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Timeout retries ve congestion sınırı açıktır.",
      "action": "“Bounded retransmission timer” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Timeout retries ve congestion sınırı açıktır. “Bir kayıp segment” kabulü ile “Sürekli kayıp peer” reddini aynı sözleşmeye bağla.",
      "invariant": "Timeout retries ve congestion sınırı açıktır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_retransmit"
      },
      "dependencies": [
        "K1890"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bir kayıp segment",
      "counterexample": "Sürekli kayıp peer",
      "guestAcceptance": "Son hata socketi ve timerı temizler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_retransmit_positive",
        "negativeName": "os_tcp_retransmit_negative",
        "expectedMarker": "TURKOS/OS/K1895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Timeout retries ve congestion sınırı açıktır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sürekli kayıp peer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1891"
    },
    {
      "id": "K1892",
      "number": 1892,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.retransmit",
      "stage": "implementation",
      "title": "Bounded retransmission timer · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Timeout retries ve congestion sınırı açıktır.",
      "action": "kernel/src/runtime/tcp.rs hedefinde os_tcp_retransmit yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_frame.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Timeout retries ve congestion sınırı açıktır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_retransmit"
      },
      "dependencies": [
        "K1891"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bir kayıp segment",
      "counterexample": "Sürekli kayıp peer",
      "guestAcceptance": "Son hata socketi ve timerı temizler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_retransmit_positive",
        "negativeName": "os_tcp_retransmit_negative",
        "expectedMarker": "TURKOS/OS/K1895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir kayıp segment ile Sürekli kayıp peer ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sürekli kayıp peer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1892"
    },
    {
      "id": "K1893",
      "number": 1893,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.retransmit",
      "stage": "positive",
      "title": "Bounded retransmission timer · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Timeout retries ve congestion sınırı açıktır.",
      "action": "os_tcp_retransmit_positive testini oluştur: “Bir kayıp segment”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Timeout retries ve congestion sınırı açıktır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_retransmit"
      },
      "dependencies": [
        "K1892"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bir kayıp segment",
      "counterexample": "Sürekli kayıp peer",
      "guestAcceptance": "Son hata socketi ve timerı temizler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_retransmit_positive",
        "negativeName": "os_tcp_retransmit_negative",
        "expectedMarker": "TURKOS/OS/K1895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir kayıp segment girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sürekli kayıp peer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1893"
    },
    {
      "id": "K1894",
      "number": 1894,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.retransmit",
      "stage": "negative",
      "title": "Bounded retransmission timer · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Timeout retries ve congestion sınırı açıktır.",
      "action": "os_tcp_retransmit_negative testini oluştur: “Sürekli kayıp peer”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Timeout retries ve congestion sınırı açıktır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_retransmit"
      },
      "dependencies": [
        "K1893"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bir kayıp segment",
      "counterexample": "Sürekli kayıp peer",
      "guestAcceptance": "Son hata socketi ve timerı temizler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_retransmit_positive",
        "negativeName": "os_tcp_retransmit_negative",
        "expectedMarker": "TURKOS/OS/K1895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sürekli kayıp peer karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sürekli kayıp peer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1894"
    },
    {
      "id": "K1895",
      "number": 1895,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.retransmit",
      "stage": "integration",
      "title": "Bounded retransmission timer · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Timeout retries ve congestion sınırı açıktır.",
      "action": "Tek ürün Image'ında “Son hata socketi ve timerı temizler” kabulünü koştur. scripts/os-acceptance/tcp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Timeout retries ve congestion sınırı açıktır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_retransmit"
      },
      "dependencies": [
        "K1894"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "Bir kayıp segment",
      "counterexample": "Sürekli kayıp peer",
      "guestAcceptance": "Son hata socketi ve timerı temizler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_retransmit_positive",
        "negativeName": "os_tcp_retransmit_negative",
        "expectedMarker": "TURKOS/OS/K1895: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son hata socketi ve timerı temizler; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sürekli kayıp peer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1895"
    },
    {
      "id": "K1896",
      "number": 1896,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.closing",
      "stage": "contract",
      "title": "FIN RST TIMEWAIT ömrü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kapanış eski tuple tekrarını sınırlıdır.",
      "action": "“FIN RST TIMEWAIT ömrü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kapanış eski tuple tekrarını sınırlıdır. “İki taraf sırayla FIN” kabulü ile “Yanlış tuple RST” reddini aynı sözleşmeye bağla.",
      "invariant": "Kapanış eski tuple tekrarını sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_closing"
      },
      "dependencies": [
        "K1895"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki taraf sırayla FIN",
      "counterexample": "Yanlış tuple RST",
      "guestAcceptance": "Doğru session korunur kaynaklar dönülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_closing_positive",
        "negativeName": "os_tcp_closing_negative",
        "expectedMarker": "TURKOS/OS/K1900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kapanış eski tuple tekrarını sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanlış tuple RST” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1896"
    },
    {
      "id": "K1897",
      "number": 1897,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.closing",
      "stage": "implementation",
      "title": "FIN RST TIMEWAIT ömrü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kapanış eski tuple tekrarını sınırlıdır.",
      "action": "kernel/src/runtime/tcp.rs hedefinde os_tcp_closing yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_frame.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kapanış eski tuple tekrarını sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_closing"
      },
      "dependencies": [
        "K1896"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki taraf sırayla FIN",
      "counterexample": "Yanlış tuple RST",
      "guestAcceptance": "Doğru session korunur kaynaklar dönülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_closing_positive",
        "negativeName": "os_tcp_closing_negative",
        "expectedMarker": "TURKOS/OS/K1900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki taraf sırayla FIN ile Yanlış tuple RST ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanlış tuple RST” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1897"
    },
    {
      "id": "K1898",
      "number": 1898,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.closing",
      "stage": "positive",
      "title": "FIN RST TIMEWAIT ömrü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kapanış eski tuple tekrarını sınırlıdır.",
      "action": "os_tcp_closing_positive testini oluştur: “İki taraf sırayla FIN”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kapanış eski tuple tekrarını sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_closing"
      },
      "dependencies": [
        "K1897"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki taraf sırayla FIN",
      "counterexample": "Yanlış tuple RST",
      "guestAcceptance": "Doğru session korunur kaynaklar dönülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_closing_positive",
        "negativeName": "os_tcp_closing_negative",
        "expectedMarker": "TURKOS/OS/K1900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki taraf sırayla FIN girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanlış tuple RST” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1898"
    },
    {
      "id": "K1899",
      "number": 1899,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.closing",
      "stage": "negative",
      "title": "FIN RST TIMEWAIT ömrü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kapanış eski tuple tekrarını sınırlıdır.",
      "action": "os_tcp_closing_negative testini oluştur: “Yanlış tuple RST”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kapanış eski tuple tekrarını sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_closing"
      },
      "dependencies": [
        "K1898"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki taraf sırayla FIN",
      "counterexample": "Yanlış tuple RST",
      "guestAcceptance": "Doğru session korunur kaynaklar dönülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_closing_positive",
        "negativeName": "os_tcp_closing_negative",
        "expectedMarker": "TURKOS/OS/K1900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış tuple RST karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanlış tuple RST” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1899"
    },
    {
      "id": "K1900",
      "number": 1900,
      "phase": 13,
      "module": "tcp",
      "feature": "tcp.closing",
      "stage": "integration",
      "title": "FIN RST TIMEWAIT ömrü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "ARP ICMP probe yerine servis edilen ağ yığını kurulur. Test ağı izole tutulur; internet ve TLS desteği kendiliğinden ilan edilmez. Bu hamlenin koruduğu değişmez: Kapanış eski tuple tekrarını sınırlıdır.",
      "action": "Tek ürün Image'ında “Doğru session korunur kaynaklar dönülür” kabulünü koştur. scripts/os-acceptance/tcp.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kapanış eski tuple tekrarını sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/tcp.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_frame.rs",
        "existingReferenceSha256": "c02c393ceee540113597d902fff4160b7ca0e398bb04e6599efef4cd68740304",
        "symbol": "os_tcp_closing"
      },
      "dependencies": [
        "K1899"
      ],
      "phasePrerequisites": [
        12
      ],
      "positive": "İki taraf sırayla FIN",
      "counterexample": "Yanlış tuple RST",
      "guestAcceptance": "Doğru session korunur kaynaklar dönülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/tcp.rs",
        "harness": "scripts/os-acceptance/tcp.mjs",
        "positiveName": "os_tcp_closing_positive",
        "negativeName": "os_tcp_closing_negative",
        "expectedMarker": "TURKOS/OS/K1900: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Doğru session korunur kaynaklar dönülür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanlış tuple RST” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-13#k1900"
    },
    {
      "id": "K1901",
      "number": 1901,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.source",
      "stage": "contract",
      "title": "Virtio RNG kaynak kalitesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Başarılı I/O entropy garantisi sayılmaz.",
      "action": "“Virtio RNG kaynak kalitesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başarılı I/O entropy garantisi sayılmaz. “RNG buffer tamamlanır” kabulü ile “Sabit tekrar eden kaynak” reddini aynı sözleşmeye bağla.",
      "invariant": "Başarılı I/O entropy garantisi sayılmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_source"
      },
      "dependencies": [],
      "phasePrerequisites": [
        13
      ],
      "positive": "RNG buffer tamamlanır",
      "counterexample": "Sabit tekrar eden kaynak",
      "guestAcceptance": "Kalite ve kullanılabilirlik ayrı tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_source_positive",
        "negativeName": "os_entropy_source_negative",
        "expectedMarker": "TURKOS/OS/K1905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başarılı I/O entropy garantisi sayılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sabit tekrar eden kaynak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1901"
    },
    {
      "id": "K1902",
      "number": 1902,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.source",
      "stage": "implementation",
      "title": "Virtio RNG kaynak kalitesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Başarılı I/O entropy garantisi sayılmaz.",
      "action": "kernel/src/runtime/entropy.rs hedefinde os_entropy_source yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başarılı I/O entropy garantisi sayılmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_source"
      },
      "dependencies": [
        "K1901"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RNG buffer tamamlanır",
      "counterexample": "Sabit tekrar eden kaynak",
      "guestAcceptance": "Kalite ve kullanılabilirlik ayrı tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_source_positive",
        "negativeName": "os_entropy_source_negative",
        "expectedMarker": "TURKOS/OS/K1905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. RNG buffer tamamlanır ile Sabit tekrar eden kaynak ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sabit tekrar eden kaynak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1902"
    },
    {
      "id": "K1903",
      "number": 1903,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.source",
      "stage": "positive",
      "title": "Virtio RNG kaynak kalitesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Başarılı I/O entropy garantisi sayılmaz.",
      "action": "os_entropy_source_positive testini oluştur: “RNG buffer tamamlanır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başarılı I/O entropy garantisi sayılmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_source"
      },
      "dependencies": [
        "K1902"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RNG buffer tamamlanır",
      "counterexample": "Sabit tekrar eden kaynak",
      "guestAcceptance": "Kalite ve kullanılabilirlik ayrı tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_source_positive",
        "negativeName": "os_entropy_source_negative",
        "expectedMarker": "TURKOS/OS/K1905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; RNG buffer tamamlanır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sabit tekrar eden kaynak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1903"
    },
    {
      "id": "K1904",
      "number": 1904,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.source",
      "stage": "negative",
      "title": "Virtio RNG kaynak kalitesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Başarılı I/O entropy garantisi sayılmaz.",
      "action": "os_entropy_source_negative testini oluştur: “Sabit tekrar eden kaynak”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başarılı I/O entropy garantisi sayılmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_source"
      },
      "dependencies": [
        "K1903"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RNG buffer tamamlanır",
      "counterexample": "Sabit tekrar eden kaynak",
      "guestAcceptance": "Kalite ve kullanılabilirlik ayrı tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_source_positive",
        "negativeName": "os_entropy_source_negative",
        "expectedMarker": "TURKOS/OS/K1905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sabit tekrar eden kaynak karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sabit tekrar eden kaynak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1904"
    },
    {
      "id": "K1905",
      "number": 1905,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.source",
      "stage": "integration",
      "title": "Virtio RNG kaynak kalitesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Başarılı I/O entropy garantisi sayılmaz.",
      "action": "Tek ürün Image'ında “Kalite ve kullanılabilirlik ayrı tanı” kabulünü koştur. scripts/os-acceptance/entropy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başarılı I/O entropy garantisi sayılmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_source"
      },
      "dependencies": [
        "K1904"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RNG buffer tamamlanır",
      "counterexample": "Sabit tekrar eden kaynak",
      "guestAcceptance": "Kalite ve kullanılabilirlik ayrı tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_source_positive",
        "negativeName": "os_entropy_source_negative",
        "expectedMarker": "TURKOS/OS/K1905: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kalite ve kullanılabilirlik ayrı tanı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sabit tekrar eden kaynak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1905"
    },
    {
      "id": "K1906",
      "number": 1906,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.limits",
      "stage": "contract",
      "title": "RNG istek ve bekleme sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: İstek boy timeout ve quota sınırlıdır.",
      "action": "“RNG istek ve bekleme sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İstek boy timeout ve quota sınırlıdır. “32 byte nonce talebi” kabulü ile “RNG yok veya timeout” reddini aynı sözleşmeye bağla.",
      "invariant": "İstek boy timeout ve quota sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_limits"
      },
      "dependencies": [
        "K1905"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "32 byte nonce talebi",
      "counterexample": "RNG yok veya timeout",
      "guestAcceptance": "Açık EAGAIN güvensiz fallback yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_limits_positive",
        "negativeName": "os_entropy_limits_negative",
        "expectedMarker": "TURKOS/OS/K1910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İstek boy timeout ve quota sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“RNG yok veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1906"
    },
    {
      "id": "K1907",
      "number": 1907,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.limits",
      "stage": "implementation",
      "title": "RNG istek ve bekleme sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: İstek boy timeout ve quota sınırlıdır.",
      "action": "kernel/src/runtime/entropy.rs hedefinde os_entropy_limits yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İstek boy timeout ve quota sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_limits"
      },
      "dependencies": [
        "K1906"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "32 byte nonce talebi",
      "counterexample": "RNG yok veya timeout",
      "guestAcceptance": "Açık EAGAIN güvensiz fallback yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_limits_positive",
        "negativeName": "os_entropy_limits_negative",
        "expectedMarker": "TURKOS/OS/K1910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 32 byte nonce talebi ile RNG yok veya timeout ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“RNG yok veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1907"
    },
    {
      "id": "K1908",
      "number": 1908,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.limits",
      "stage": "positive",
      "title": "RNG istek ve bekleme sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: İstek boy timeout ve quota sınırlıdır.",
      "action": "os_entropy_limits_positive testini oluştur: “32 byte nonce talebi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İstek boy timeout ve quota sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_limits"
      },
      "dependencies": [
        "K1907"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "32 byte nonce talebi",
      "counterexample": "RNG yok veya timeout",
      "guestAcceptance": "Açık EAGAIN güvensiz fallback yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_limits_positive",
        "negativeName": "os_entropy_limits_negative",
        "expectedMarker": "TURKOS/OS/K1910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 32 byte nonce talebi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“RNG yok veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1908"
    },
    {
      "id": "K1909",
      "number": 1909,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.limits",
      "stage": "negative",
      "title": "RNG istek ve bekleme sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: İstek boy timeout ve quota sınırlıdır.",
      "action": "os_entropy_limits_negative testini oluştur: “RNG yok veya timeout”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İstek boy timeout ve quota sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_limits"
      },
      "dependencies": [
        "K1908"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "32 byte nonce talebi",
      "counterexample": "RNG yok veya timeout",
      "guestAcceptance": "Açık EAGAIN güvensiz fallback yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_limits_positive",
        "negativeName": "os_entropy_limits_negative",
        "expectedMarker": "TURKOS/OS/K1910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "RNG yok veya timeout karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“RNG yok veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1909"
    },
    {
      "id": "K1910",
      "number": 1910,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.limits",
      "stage": "integration",
      "title": "RNG istek ve bekleme sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: İstek boy timeout ve quota sınırlıdır.",
      "action": "Tek ürün Image'ında “Açık EAGAIN güvensiz fallback yok” kabulünü koştur. scripts/os-acceptance/entropy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İstek boy timeout ve quota sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_limits"
      },
      "dependencies": [
        "K1909"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "32 byte nonce talebi",
      "counterexample": "RNG yok veya timeout",
      "guestAcceptance": "Açık EAGAIN güvensiz fallback yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_limits_positive",
        "negativeName": "os_entropy_limits_negative",
        "expectedMarker": "TURKOS/OS/K1910: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Açık EAGAIN güvensiz fallback yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“RNG yok veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1910"
    },
    {
      "id": "K1911",
      "number": 1911,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.provider",
      "stage": "contract",
      "title": "Kripto sağlayıcı sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Algoritma kendi tasarımımız olmaz.",
      "action": "“Kripto sağlayıcı sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Algoritma kendi tasarımımız olmaz. “Sürümlü denetlenebilir provider API” kabulü ile “Desteksiz algorithm id” reddini aynı sözleşmeye bağla.",
      "invariant": "Algoritma kendi tasarımımız olmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_provider"
      },
      "dependencies": [
        "K1910"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü denetlenebilir provider API",
      "counterexample": "Desteksiz algorithm id",
      "guestAcceptance": "Seçim ve threat boundary manifestte",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_provider_positive",
        "negativeName": "os_entropy_provider_negative",
        "expectedMarker": "TURKOS/OS/K1915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Algoritma kendi tasarımımız olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Desteksiz algorithm id” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1911"
    },
    {
      "id": "K1912",
      "number": 1912,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.provider",
      "stage": "implementation",
      "title": "Kripto sağlayıcı sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Algoritma kendi tasarımımız olmaz.",
      "action": "kernel/src/runtime/entropy.rs hedefinde os_entropy_provider yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Algoritma kendi tasarımımız olmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_provider"
      },
      "dependencies": [
        "K1911"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü denetlenebilir provider API",
      "counterexample": "Desteksiz algorithm id",
      "guestAcceptance": "Seçim ve threat boundary manifestte",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_provider_positive",
        "negativeName": "os_entropy_provider_negative",
        "expectedMarker": "TURKOS/OS/K1915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Sürümlü denetlenebilir provider API ile Desteksiz algorithm id ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Desteksiz algorithm id” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1912"
    },
    {
      "id": "K1913",
      "number": 1913,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.provider",
      "stage": "positive",
      "title": "Kripto sağlayıcı sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Algoritma kendi tasarımımız olmaz.",
      "action": "os_entropy_provider_positive testini oluştur: “Sürümlü denetlenebilir provider API”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Algoritma kendi tasarımımız olmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_provider"
      },
      "dependencies": [
        "K1912"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü denetlenebilir provider API",
      "counterexample": "Desteksiz algorithm id",
      "guestAcceptance": "Seçim ve threat boundary manifestte",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_provider_positive",
        "negativeName": "os_entropy_provider_negative",
        "expectedMarker": "TURKOS/OS/K1915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Sürümlü denetlenebilir provider API girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Desteksiz algorithm id” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1913"
    },
    {
      "id": "K1914",
      "number": 1914,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.provider",
      "stage": "negative",
      "title": "Kripto sağlayıcı sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Algoritma kendi tasarımımız olmaz.",
      "action": "os_entropy_provider_negative testini oluştur: “Desteksiz algorithm id”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Algoritma kendi tasarımımız olmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_provider"
      },
      "dependencies": [
        "K1913"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü denetlenebilir provider API",
      "counterexample": "Desteksiz algorithm id",
      "guestAcceptance": "Seçim ve threat boundary manifestte",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_provider_positive",
        "negativeName": "os_entropy_provider_negative",
        "expectedMarker": "TURKOS/OS/K1915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Desteksiz algorithm id karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Desteksiz algorithm id” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1914"
    },
    {
      "id": "K1915",
      "number": 1915,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.provider",
      "stage": "integration",
      "title": "Kripto sağlayıcı sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Algoritma kendi tasarımımız olmaz.",
      "action": "Tek ürün Image'ında “Seçim ve threat boundary manifestte” kabulünü koştur. scripts/os-acceptance/entropy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Algoritma kendi tasarımımız olmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_provider"
      },
      "dependencies": [
        "K1914"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü denetlenebilir provider API",
      "counterexample": "Desteksiz algorithm id",
      "guestAcceptance": "Seçim ve threat boundary manifestte",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_provider_positive",
        "negativeName": "os_entropy_provider_negative",
        "expectedMarker": "TURKOS/OS/K1915: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Seçim ve threat boundary manifestte; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Desteksiz algorithm id” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1915"
    },
    {
      "id": "K1916",
      "number": 1916,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.secrets",
      "stage": "contract",
      "title": "Anahtar buffer yaşamı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Anahtar log dump ve yeni kullanıcıya sızmaz.",
      "action": "“Anahtar buffer yaşamı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Anahtar log dump ve yeni kullanıcıya sızmaz. “Secret buffer kullanıp sil” kabulü ile “Panik dump secretı basar” reddini aynı sözleşmeye bağla.",
      "invariant": "Anahtar log dump ve yeni kullanıcıya sızmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_secrets"
      },
      "dependencies": [
        "K1915"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Secret buffer kullanıp sil",
      "counterexample": "Panik dump secretı basar",
      "guestAcceptance": "Sır kanaryası hiçbir yayımlanan logda yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_secrets_positive",
        "negativeName": "os_entropy_secrets_negative",
        "expectedMarker": "TURKOS/OS/K1920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Anahtar log dump ve yeni kullanıcıya sızmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Panik dump secretı basar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1916"
    },
    {
      "id": "K1917",
      "number": 1917,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.secrets",
      "stage": "implementation",
      "title": "Anahtar buffer yaşamı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Anahtar log dump ve yeni kullanıcıya sızmaz.",
      "action": "kernel/src/runtime/entropy.rs hedefinde os_entropy_secrets yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Anahtar log dump ve yeni kullanıcıya sızmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_secrets"
      },
      "dependencies": [
        "K1916"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Secret buffer kullanıp sil",
      "counterexample": "Panik dump secretı basar",
      "guestAcceptance": "Sır kanaryası hiçbir yayımlanan logda yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_secrets_positive",
        "negativeName": "os_entropy_secrets_negative",
        "expectedMarker": "TURKOS/OS/K1920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Secret buffer kullanıp sil ile Panik dump secretı basar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Panik dump secretı basar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1917"
    },
    {
      "id": "K1918",
      "number": 1918,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.secrets",
      "stage": "positive",
      "title": "Anahtar buffer yaşamı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Anahtar log dump ve yeni kullanıcıya sızmaz.",
      "action": "os_entropy_secrets_positive testini oluştur: “Secret buffer kullanıp sil”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Anahtar log dump ve yeni kullanıcıya sızmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_secrets"
      },
      "dependencies": [
        "K1917"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Secret buffer kullanıp sil",
      "counterexample": "Panik dump secretı basar",
      "guestAcceptance": "Sır kanaryası hiçbir yayımlanan logda yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_secrets_positive",
        "negativeName": "os_entropy_secrets_negative",
        "expectedMarker": "TURKOS/OS/K1920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Secret buffer kullanıp sil girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Panik dump secretı basar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1918"
    },
    {
      "id": "K1919",
      "number": 1919,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.secrets",
      "stage": "negative",
      "title": "Anahtar buffer yaşamı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Anahtar log dump ve yeni kullanıcıya sızmaz.",
      "action": "os_entropy_secrets_negative testini oluştur: “Panik dump secretı basar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Anahtar log dump ve yeni kullanıcıya sızmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_secrets"
      },
      "dependencies": [
        "K1918"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Secret buffer kullanıp sil",
      "counterexample": "Panik dump secretı basar",
      "guestAcceptance": "Sır kanaryası hiçbir yayımlanan logda yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_secrets_positive",
        "negativeName": "os_entropy_secrets_negative",
        "expectedMarker": "TURKOS/OS/K1920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Panik dump secretı basar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Panik dump secretı basar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1919"
    },
    {
      "id": "K1920",
      "number": 1920,
      "phase": 14,
      "module": "entropy",
      "feature": "entropy.secrets",
      "stage": "integration",
      "title": "Anahtar buffer yaşamı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Anahtar log dump ve yeni kullanıcıya sızmaz.",
      "action": "Tek ürün Image'ında “Sır kanaryası hiçbir yayımlanan logda yok” kabulünü koştur. scripts/os-acceptance/entropy.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Anahtar log dump ve yeni kullanıcıya sızmaz",
      "source": {
        "target": "kernel/src/runtime/entropy.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_entropy_secrets"
      },
      "dependencies": [
        "K1919"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Secret buffer kullanıp sil",
      "counterexample": "Panik dump secretı basar",
      "guestAcceptance": "Sır kanaryası hiçbir yayımlanan logda yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/entropy.rs",
        "harness": "scripts/os-acceptance/entropy.mjs",
        "positiveName": "os_entropy_secrets_positive",
        "negativeName": "os_entropy_secrets_negative",
        "expectedMarker": "TURKOS/OS/K1920: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sır kanaryası hiçbir yayımlanan logda yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Panik dump secretı basar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1920"
    },
    {
      "id": "K1921",
      "number": 1921,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.rights_model",
      "stage": "contract",
      "title": "Capability hak bileşimi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Haklar nesne principal ve operasyonla sınırlıdır.",
      "action": "“Capability hak bileşimi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Haklar nesne principal ve operasyonla sınırlıdır. “RO file ve write console” kabulü ile “Global admin hakkı kullanıcıdan gelir” reddini aynı sözleşmeye bağla.",
      "invariant": "Haklar nesne principal ve operasyonla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_rights_model"
      },
      "dependencies": [
        "K1920"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RO file ve write console",
      "counterexample": "Global admin hakkı kullanıcıdan gelir",
      "guestAcceptance": "Kernel yetki genişletmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_rights_model_positive",
        "negativeName": "os_sandbox_rights_model_negative",
        "expectedMarker": "TURKOS/OS/K1925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Haklar nesne principal ve operasyonla sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Global admin hakkı kullanıcıdan gelir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1921"
    },
    {
      "id": "K1922",
      "number": 1922,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.rights_model",
      "stage": "implementation",
      "title": "Capability hak bileşimi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Haklar nesne principal ve operasyonla sınırlıdır.",
      "action": "kernel/src/runtime/sandbox.rs hedefinde os_sandbox_rights_model yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Haklar nesne principal ve operasyonla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_rights_model"
      },
      "dependencies": [
        "K1921"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RO file ve write console",
      "counterexample": "Global admin hakkı kullanıcıdan gelir",
      "guestAcceptance": "Kernel yetki genişletmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_rights_model_positive",
        "negativeName": "os_sandbox_rights_model_negative",
        "expectedMarker": "TURKOS/OS/K1925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. RO file ve write console ile Global admin hakkı kullanıcıdan gelir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Global admin hakkı kullanıcıdan gelir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1922"
    },
    {
      "id": "K1923",
      "number": 1923,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.rights_model",
      "stage": "positive",
      "title": "Capability hak bileşimi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Haklar nesne principal ve operasyonla sınırlıdır.",
      "action": "os_sandbox_rights_model_positive testini oluştur: “RO file ve write console”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Haklar nesne principal ve operasyonla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_rights_model"
      },
      "dependencies": [
        "K1922"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RO file ve write console",
      "counterexample": "Global admin hakkı kullanıcıdan gelir",
      "guestAcceptance": "Kernel yetki genişletmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_rights_model_positive",
        "negativeName": "os_sandbox_rights_model_negative",
        "expectedMarker": "TURKOS/OS/K1925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; RO file ve write console girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Global admin hakkı kullanıcıdan gelir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1923"
    },
    {
      "id": "K1924",
      "number": 1924,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.rights_model",
      "stage": "negative",
      "title": "Capability hak bileşimi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Haklar nesne principal ve operasyonla sınırlıdır.",
      "action": "os_sandbox_rights_model_negative testini oluştur: “Global admin hakkı kullanıcıdan gelir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Haklar nesne principal ve operasyonla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_rights_model"
      },
      "dependencies": [
        "K1923"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RO file ve write console",
      "counterexample": "Global admin hakkı kullanıcıdan gelir",
      "guestAcceptance": "Kernel yetki genişletmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_rights_model_positive",
        "negativeName": "os_sandbox_rights_model_negative",
        "expectedMarker": "TURKOS/OS/K1925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Global admin hakkı kullanıcıdan gelir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Global admin hakkı kullanıcıdan gelir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1924"
    },
    {
      "id": "K1925",
      "number": 1925,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.rights_model",
      "stage": "integration",
      "title": "Capability hak bileşimi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Haklar nesne principal ve operasyonla sınırlıdır.",
      "action": "Tek ürün Image'ında “Kernel yetki genişletmez” kabulünü koştur. scripts/os-acceptance/sandbox.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Haklar nesne principal ve operasyonla sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_rights_model"
      },
      "dependencies": [
        "K1924"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "RO file ve write console",
      "counterexample": "Global admin hakkı kullanıcıdan gelir",
      "guestAcceptance": "Kernel yetki genişletmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_rights_model_positive",
        "negativeName": "os_sandbox_rights_model_negative",
        "expectedMarker": "TURKOS/OS/K1925: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kernel yetki genişletmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Global admin hakkı kullanıcıdan gelir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1925"
    },
    {
      "id": "K1926",
      "number": 1926,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.namespaces",
      "stage": "contract",
      "title": "Süreç dosya hizmet kökü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Namespace kökü chdir ile aşılmaz.",
      "action": "“Süreç dosya hizmet kökü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Namespace kökü chdir ile aşılmaz. “Alt root içinde iki dosya” kabulü ile “Symlink root dışına çıkar” reddini aynı sözleşmeye bağla.",
      "invariant": "Namespace kökü chdir ile aşılmaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_namespaces"
      },
      "dependencies": [
        "K1925"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Alt root içinde iki dosya",
      "counterexample": "Symlink root dışına çıkar",
      "guestAcceptance": "Ret ve değişmeyen namespace",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_namespaces_positive",
        "negativeName": "os_sandbox_namespaces_negative",
        "expectedMarker": "TURKOS/OS/K1930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Namespace kökü chdir ile aşılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Symlink root dışına çıkar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1926"
    },
    {
      "id": "K1927",
      "number": 1927,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.namespaces",
      "stage": "implementation",
      "title": "Süreç dosya hizmet kökü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Namespace kökü chdir ile aşılmaz.",
      "action": "kernel/src/runtime/sandbox.rs hedefinde os_sandbox_namespaces yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Namespace kökü chdir ile aşılmaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_namespaces"
      },
      "dependencies": [
        "K1926"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Alt root içinde iki dosya",
      "counterexample": "Symlink root dışına çıkar",
      "guestAcceptance": "Ret ve değişmeyen namespace",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_namespaces_positive",
        "negativeName": "os_sandbox_namespaces_negative",
        "expectedMarker": "TURKOS/OS/K1930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Alt root içinde iki dosya ile Symlink root dışına çıkar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Symlink root dışına çıkar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1927"
    },
    {
      "id": "K1928",
      "number": 1928,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.namespaces",
      "stage": "positive",
      "title": "Süreç dosya hizmet kökü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Namespace kökü chdir ile aşılmaz.",
      "action": "os_sandbox_namespaces_positive testini oluştur: “Alt root içinde iki dosya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Namespace kökü chdir ile aşılmaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_namespaces"
      },
      "dependencies": [
        "K1927"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Alt root içinde iki dosya",
      "counterexample": "Symlink root dışına çıkar",
      "guestAcceptance": "Ret ve değişmeyen namespace",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_namespaces_positive",
        "negativeName": "os_sandbox_namespaces_negative",
        "expectedMarker": "TURKOS/OS/K1930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Alt root içinde iki dosya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Symlink root dışına çıkar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1928"
    },
    {
      "id": "K1929",
      "number": 1929,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.namespaces",
      "stage": "negative",
      "title": "Süreç dosya hizmet kökü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Namespace kökü chdir ile aşılmaz.",
      "action": "os_sandbox_namespaces_negative testini oluştur: “Symlink root dışına çıkar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Namespace kökü chdir ile aşılmaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_namespaces"
      },
      "dependencies": [
        "K1928"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Alt root içinde iki dosya",
      "counterexample": "Symlink root dışına çıkar",
      "guestAcceptance": "Ret ve değişmeyen namespace",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_namespaces_positive",
        "negativeName": "os_sandbox_namespaces_negative",
        "expectedMarker": "TURKOS/OS/K1930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Symlink root dışına çıkar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Symlink root dışına çıkar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1929"
    },
    {
      "id": "K1930",
      "number": 1930,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.namespaces",
      "stage": "integration",
      "title": "Süreç dosya hizmet kökü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Namespace kökü chdir ile aşılmaz.",
      "action": "Tek ürün Image'ında “Ret ve değişmeyen namespace” kabulünü koştur. scripts/os-acceptance/sandbox.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Namespace kökü chdir ile aşılmaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_namespaces"
      },
      "dependencies": [
        "K1929"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Alt root içinde iki dosya",
      "counterexample": "Symlink root dışına çıkar",
      "guestAcceptance": "Ret ve değişmeyen namespace",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_namespaces_positive",
        "negativeName": "os_sandbox_namespaces_negative",
        "expectedMarker": "TURKOS/OS/K1930: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret ve değişmeyen namespace; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Symlink root dışına çıkar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1930"
    },
    {
      "id": "K1931",
      "number": 1931,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.device_access",
      "stage": "contract",
      "title": "Aygıt yönetim hakları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: EL0 raw MMIO veya DMA adresi alamaz.",
      "action": "“Aygıt yönetim hakları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: EL0 raw MMIO veya DMA adresi alamaz. “Yetkili servis request API” kabulü ile “User fiziksel BAR map ister” reddini aynı sözleşmeye bağla.",
      "invariant": "EL0 raw MMIO veya DMA adresi alamaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_device_access"
      },
      "dependencies": [
        "K1930"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili servis request API",
      "counterexample": "User fiziksel BAR map ister",
      "guestAcceptance": "EACCES ve MMIO fault ayrımı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_device_access_positive",
        "negativeName": "os_sandbox_device_access_negative",
        "expectedMarker": "TURKOS/OS/K1935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu EL0 raw MMIO veya DMA adresi alamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“User fiziksel BAR map ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1931"
    },
    {
      "id": "K1932",
      "number": 1932,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.device_access",
      "stage": "implementation",
      "title": "Aygıt yönetim hakları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: EL0 raw MMIO veya DMA adresi alamaz.",
      "action": "kernel/src/runtime/sandbox.rs hedefinde os_sandbox_device_access yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "EL0 raw MMIO veya DMA adresi alamaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_device_access"
      },
      "dependencies": [
        "K1931"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili servis request API",
      "counterexample": "User fiziksel BAR map ister",
      "guestAcceptance": "EACCES ve MMIO fault ayrımı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_device_access_positive",
        "negativeName": "os_sandbox_device_access_negative",
        "expectedMarker": "TURKOS/OS/K1935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yetkili servis request API ile User fiziksel BAR map ister ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“User fiziksel BAR map ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1932"
    },
    {
      "id": "K1933",
      "number": 1933,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.device_access",
      "stage": "positive",
      "title": "Aygıt yönetim hakları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: EL0 raw MMIO veya DMA adresi alamaz.",
      "action": "os_sandbox_device_access_positive testini oluştur: “Yetkili servis request API”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "EL0 raw MMIO veya DMA adresi alamaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_device_access"
      },
      "dependencies": [
        "K1932"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili servis request API",
      "counterexample": "User fiziksel BAR map ister",
      "guestAcceptance": "EACCES ve MMIO fault ayrımı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_device_access_positive",
        "negativeName": "os_sandbox_device_access_negative",
        "expectedMarker": "TURKOS/OS/K1935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yetkili servis request API girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“User fiziksel BAR map ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1933"
    },
    {
      "id": "K1934",
      "number": 1934,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.device_access",
      "stage": "negative",
      "title": "Aygıt yönetim hakları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: EL0 raw MMIO veya DMA adresi alamaz.",
      "action": "os_sandbox_device_access_negative testini oluştur: “User fiziksel BAR map ister”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "EL0 raw MMIO veya DMA adresi alamaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_device_access"
      },
      "dependencies": [
        "K1933"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili servis request API",
      "counterexample": "User fiziksel BAR map ister",
      "guestAcceptance": "EACCES ve MMIO fault ayrımı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_device_access_positive",
        "negativeName": "os_sandbox_device_access_negative",
        "expectedMarker": "TURKOS/OS/K1935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "User fiziksel BAR map ister karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“User fiziksel BAR map ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1934"
    },
    {
      "id": "K1935",
      "number": 1935,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.device_access",
      "stage": "integration",
      "title": "Aygıt yönetim hakları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: EL0 raw MMIO veya DMA adresi alamaz.",
      "action": "Tek ürün Image'ında “EACCES ve MMIO fault ayrımı” kabulünü koştur. scripts/os-acceptance/sandbox.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "EL0 raw MMIO veya DMA adresi alamaz",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_device_access"
      },
      "dependencies": [
        "K1934"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili servis request API",
      "counterexample": "User fiziksel BAR map ister",
      "guestAcceptance": "EACCES ve MMIO fault ayrımı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_device_access_positive",
        "negativeName": "os_sandbox_device_access_negative",
        "expectedMarker": "TURKOS/OS/K1935: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EACCES ve MMIO fault ayrımı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“User fiziksel BAR map ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1935"
    },
    {
      "id": "K1936",
      "number": 1936,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.quotas",
      "stage": "contract",
      "title": "CPU bellek IPC bütçeleri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Bir saldırgan diğer servisi tüketemez.",
      "action": "“CPU bellek IPC bütçeleri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bir saldırgan diğer servisi tüketemez. “Dolu quota saldırgan süreç” kabulü ile “Bin channel spawn isteği” reddini aynı sözleşmeye bağla.",
      "invariant": "Bir saldırgan diğer servisi tüketemez",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_quotas"
      },
      "dependencies": [
        "K1935"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Dolu quota saldırgan süreç",
      "counterexample": "Bin channel spawn isteği",
      "guestAcceptance": "Hizmetler ilerler kayıp ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_quotas_positive",
        "negativeName": "os_sandbox_quotas_negative",
        "expectedMarker": "TURKOS/OS/K1940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bir saldırgan diğer servisi tüketemez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bin channel spawn isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1936"
    },
    {
      "id": "K1937",
      "number": 1937,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.quotas",
      "stage": "implementation",
      "title": "CPU bellek IPC bütçeleri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Bir saldırgan diğer servisi tüketemez.",
      "action": "kernel/src/runtime/sandbox.rs hedefinde os_sandbox_quotas yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/handle.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bir saldırgan diğer servisi tüketemez",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_quotas"
      },
      "dependencies": [
        "K1936"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Dolu quota saldırgan süreç",
      "counterexample": "Bin channel spawn isteği",
      "guestAcceptance": "Hizmetler ilerler kayıp ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_quotas_positive",
        "negativeName": "os_sandbox_quotas_negative",
        "expectedMarker": "TURKOS/OS/K1940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dolu quota saldırgan süreç ile Bin channel spawn isteği ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bin channel spawn isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1937"
    },
    {
      "id": "K1938",
      "number": 1938,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.quotas",
      "stage": "positive",
      "title": "CPU bellek IPC bütçeleri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Bir saldırgan diğer servisi tüketemez.",
      "action": "os_sandbox_quotas_positive testini oluştur: “Dolu quota saldırgan süreç”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bir saldırgan diğer servisi tüketemez",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_quotas"
      },
      "dependencies": [
        "K1937"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Dolu quota saldırgan süreç",
      "counterexample": "Bin channel spawn isteği",
      "guestAcceptance": "Hizmetler ilerler kayıp ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_quotas_positive",
        "negativeName": "os_sandbox_quotas_negative",
        "expectedMarker": "TURKOS/OS/K1940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dolu quota saldırgan süreç girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bin channel spawn isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1938"
    },
    {
      "id": "K1939",
      "number": 1939,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.quotas",
      "stage": "negative",
      "title": "CPU bellek IPC bütçeleri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Bir saldırgan diğer servisi tüketemez.",
      "action": "os_sandbox_quotas_negative testini oluştur: “Bin channel spawn isteği”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bir saldırgan diğer servisi tüketemez",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_quotas"
      },
      "dependencies": [
        "K1938"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Dolu quota saldırgan süreç",
      "counterexample": "Bin channel spawn isteği",
      "guestAcceptance": "Hizmetler ilerler kayıp ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_quotas_positive",
        "negativeName": "os_sandbox_quotas_negative",
        "expectedMarker": "TURKOS/OS/K1940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bin channel spawn isteği karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bin channel spawn isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1939"
    },
    {
      "id": "K1940",
      "number": 1940,
      "phase": 14,
      "module": "sandbox",
      "feature": "sandbox.quotas",
      "stage": "integration",
      "title": "CPU bellek IPC bütçeleri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Bir saldırgan diğer servisi tüketemez.",
      "action": "Tek ürün Image'ında “Hizmetler ilerler kayıp ölçülür” kabulünü koştur. scripts/os-acceptance/sandbox.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bir saldırgan diğer servisi tüketemez",
      "source": {
        "target": "kernel/src/runtime/sandbox.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/handle.rs",
        "existingReferenceSha256": "acd0def34e48f1646369f1c55a22edaa14374ba620cd67f9ef22f3073440450d",
        "symbol": "os_sandbox_quotas"
      },
      "dependencies": [
        "K1939"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Dolu quota saldırgan süreç",
      "counterexample": "Bin channel spawn isteği",
      "guestAcceptance": "Hizmetler ilerler kayıp ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/sandbox.rs",
        "harness": "scripts/os-acceptance/sandbox.mjs",
        "positiveName": "os_sandbox_quotas_positive",
        "negativeName": "os_sandbox_quotas_negative",
        "expectedMarker": "TURKOS/OS/K1940: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hizmetler ilerler kayıp ölçülür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bin channel spawn isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1940"
    },
    {
      "id": "K1941",
      "number": 1941,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.ids",
      "stage": "contract",
      "title": "Principal oluşturma ve nesil · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Yeni principal eski hakları miras almaz.",
      "action": "“Principal oluşturma ve nesil” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yeni principal eski hakları miras almaz. “İki kullanıcı oturumu” kabulü ile “Kimlik slotu tekrarında stale token” reddini aynı sözleşmeye bağla.",
      "invariant": "Yeni principal eski hakları miras almaz",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_ids"
      },
      "dependencies": [
        "K1940"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki kullanıcı oturumu",
      "counterexample": "Kimlik slotu tekrarında stale token",
      "guestAcceptance": "Eski session yeni kullanıcıya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_ids_positive",
        "negativeName": "os_credentials_ids_negative",
        "expectedMarker": "TURKOS/OS/K1945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yeni principal eski hakları miras almaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kimlik slotu tekrarında stale token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1941"
    },
    {
      "id": "K1942",
      "number": 1942,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.ids",
      "stage": "implementation",
      "title": "Principal oluşturma ve nesil · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Yeni principal eski hakları miras almaz.",
      "action": "kernel/src/runtime/credentials.rs hedefinde os_credentials_ids yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yeni principal eski hakları miras almaz",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_ids"
      },
      "dependencies": [
        "K1941"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki kullanıcı oturumu",
      "counterexample": "Kimlik slotu tekrarında stale token",
      "guestAcceptance": "Eski session yeni kullanıcıya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_ids_positive",
        "negativeName": "os_credentials_ids_negative",
        "expectedMarker": "TURKOS/OS/K1945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki kullanıcı oturumu ile Kimlik slotu tekrarında stale token ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kimlik slotu tekrarında stale token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1942"
    },
    {
      "id": "K1943",
      "number": 1943,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.ids",
      "stage": "positive",
      "title": "Principal oluşturma ve nesil · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Yeni principal eski hakları miras almaz.",
      "action": "os_credentials_ids_positive testini oluştur: “İki kullanıcı oturumu”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yeni principal eski hakları miras almaz",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_ids"
      },
      "dependencies": [
        "K1942"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki kullanıcı oturumu",
      "counterexample": "Kimlik slotu tekrarında stale token",
      "guestAcceptance": "Eski session yeni kullanıcıya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_ids_positive",
        "negativeName": "os_credentials_ids_negative",
        "expectedMarker": "TURKOS/OS/K1945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki kullanıcı oturumu girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kimlik slotu tekrarında stale token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1943"
    },
    {
      "id": "K1944",
      "number": 1944,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.ids",
      "stage": "negative",
      "title": "Principal oluşturma ve nesil · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Yeni principal eski hakları miras almaz.",
      "action": "os_credentials_ids_negative testini oluştur: “Kimlik slotu tekrarında stale token”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yeni principal eski hakları miras almaz",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_ids"
      },
      "dependencies": [
        "K1943"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki kullanıcı oturumu",
      "counterexample": "Kimlik slotu tekrarında stale token",
      "guestAcceptance": "Eski session yeni kullanıcıya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_ids_positive",
        "negativeName": "os_credentials_ids_negative",
        "expectedMarker": "TURKOS/OS/K1945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kimlik slotu tekrarında stale token karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kimlik slotu tekrarında stale token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1944"
    },
    {
      "id": "K1945",
      "number": 1945,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.ids",
      "stage": "integration",
      "title": "Principal oluşturma ve nesil · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Yeni principal eski hakları miras almaz.",
      "action": "Tek ürün Image'ında “Eski session yeni kullanıcıya erişmez” kabulünü koştur. scripts/os-acceptance/credentials.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yeni principal eski hakları miras almaz",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_ids"
      },
      "dependencies": [
        "K1944"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki kullanıcı oturumu",
      "counterexample": "Kimlik slotu tekrarında stale token",
      "guestAcceptance": "Eski session yeni kullanıcıya erişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_ids_positive",
        "negativeName": "os_credentials_ids_negative",
        "expectedMarker": "TURKOS/OS/K1945: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski session yeni kullanıcıya erişmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kimlik slotu tekrarında stale token” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1945"
    },
    {
      "id": "K1946",
      "number": 1946,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.transitions",
      "stage": "contract",
      "title": "Kontrollü kimlik değişimi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geçiş mevcut capability gerektirir.",
      "action": "“Kontrollü kimlik değişimi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Geçiş mevcut capability gerektirir. “Yetkili düşürme işlemi” kabulü ile “Yetkisiz yükseltme” reddini aynı sözleşmeye bağla.",
      "invariant": "Geçiş mevcut capability gerektirir",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_transitions"
      },
      "dependencies": [
        "K1945"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili düşürme işlemi",
      "counterexample": "Yetkisiz yükseltme",
      "guestAcceptance": "Ret sonrası credential hash aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_transitions_positive",
        "negativeName": "os_credentials_transitions_negative",
        "expectedMarker": "TURKOS/OS/K1950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Geçiş mevcut capability gerektirir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yetkisiz yükseltme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1946"
    },
    {
      "id": "K1947",
      "number": 1947,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.transitions",
      "stage": "implementation",
      "title": "Kontrollü kimlik değişimi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geçiş mevcut capability gerektirir.",
      "action": "kernel/src/runtime/credentials.rs hedefinde os_credentials_transitions yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Geçiş mevcut capability gerektirir",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_transitions"
      },
      "dependencies": [
        "K1946"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili düşürme işlemi",
      "counterexample": "Yetkisiz yükseltme",
      "guestAcceptance": "Ret sonrası credential hash aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_transitions_positive",
        "negativeName": "os_credentials_transitions_negative",
        "expectedMarker": "TURKOS/OS/K1950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yetkili düşürme işlemi ile Yetkisiz yükseltme ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yetkisiz yükseltme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1947"
    },
    {
      "id": "K1948",
      "number": 1948,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.transitions",
      "stage": "positive",
      "title": "Kontrollü kimlik değişimi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geçiş mevcut capability gerektirir.",
      "action": "os_credentials_transitions_positive testini oluştur: “Yetkili düşürme işlemi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Geçiş mevcut capability gerektirir",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_transitions"
      },
      "dependencies": [
        "K1947"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili düşürme işlemi",
      "counterexample": "Yetkisiz yükseltme",
      "guestAcceptance": "Ret sonrası credential hash aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_transitions_positive",
        "negativeName": "os_credentials_transitions_negative",
        "expectedMarker": "TURKOS/OS/K1950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yetkili düşürme işlemi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yetkisiz yükseltme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1948"
    },
    {
      "id": "K1949",
      "number": 1949,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.transitions",
      "stage": "negative",
      "title": "Kontrollü kimlik değişimi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geçiş mevcut capability gerektirir.",
      "action": "os_credentials_transitions_negative testini oluştur: “Yetkisiz yükseltme”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Geçiş mevcut capability gerektirir",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_transitions"
      },
      "dependencies": [
        "K1948"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili düşürme işlemi",
      "counterexample": "Yetkisiz yükseltme",
      "guestAcceptance": "Ret sonrası credential hash aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_transitions_positive",
        "negativeName": "os_credentials_transitions_negative",
        "expectedMarker": "TURKOS/OS/K1950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yetkisiz yükseltme karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yetkisiz yükseltme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1949"
    },
    {
      "id": "K1950",
      "number": 1950,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.transitions",
      "stage": "integration",
      "title": "Kontrollü kimlik değişimi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geçiş mevcut capability gerektirir.",
      "action": "Tek ürün Image'ında “Ret sonrası credential hash aynı” kabulünü koştur. scripts/os-acceptance/credentials.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Geçiş mevcut capability gerektirir",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_transitions"
      },
      "dependencies": [
        "K1949"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yetkili düşürme işlemi",
      "counterexample": "Yetkisiz yükseltme",
      "guestAcceptance": "Ret sonrası credential hash aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_transitions_positive",
        "negativeName": "os_credentials_transitions_negative",
        "expectedMarker": "TURKOS/OS/K1950: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sonrası credential hash aynı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yetkisiz yükseltme” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1950"
    },
    {
      "id": "K1951",
      "number": 1951,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.proc_view",
      "stage": "contract",
      "title": "İzinli süreç metadata görünümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Ps ve debug bilgisi haklara göre süzülür.",
      "action": "“İzinli süreç metadata görünümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ps ve debug bilgisi haklara göre süzülür. “Kendi sürecini inspect” kabulü ile “Yabancı argv secretı” reddini aynı sözleşmeye bağla.",
      "invariant": "Ps ve debug bilgisi haklara göre süzülür",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_proc_view"
      },
      "dependencies": [
        "K1950"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Kendi sürecini inspect",
      "counterexample": "Yabancı argv secretı",
      "guestAcceptance": "Yalnız izinli alanlar teslim edilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_proc_view_positive",
        "negativeName": "os_credentials_proc_view_negative",
        "expectedMarker": "TURKOS/OS/K1955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ps ve debug bilgisi haklara göre süzülür kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yabancı argv secretı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1951"
    },
    {
      "id": "K1952",
      "number": 1952,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.proc_view",
      "stage": "implementation",
      "title": "İzinli süreç metadata görünümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Ps ve debug bilgisi haklara göre süzülür.",
      "action": "kernel/src/runtime/credentials.rs hedefinde os_credentials_proc_view yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ps ve debug bilgisi haklara göre süzülür",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_proc_view"
      },
      "dependencies": [
        "K1951"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Kendi sürecini inspect",
      "counterexample": "Yabancı argv secretı",
      "guestAcceptance": "Yalnız izinli alanlar teslim edilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_proc_view_positive",
        "negativeName": "os_credentials_proc_view_negative",
        "expectedMarker": "TURKOS/OS/K1955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kendi sürecini inspect ile Yabancı argv secretı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yabancı argv secretı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1952"
    },
    {
      "id": "K1953",
      "number": 1953,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.proc_view",
      "stage": "positive",
      "title": "İzinli süreç metadata görünümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Ps ve debug bilgisi haklara göre süzülür.",
      "action": "os_credentials_proc_view_positive testini oluştur: “Kendi sürecini inspect”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ps ve debug bilgisi haklara göre süzülür",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_proc_view"
      },
      "dependencies": [
        "K1952"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Kendi sürecini inspect",
      "counterexample": "Yabancı argv secretı",
      "guestAcceptance": "Yalnız izinli alanlar teslim edilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_proc_view_positive",
        "negativeName": "os_credentials_proc_view_negative",
        "expectedMarker": "TURKOS/OS/K1955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kendi sürecini inspect girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yabancı argv secretı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1953"
    },
    {
      "id": "K1954",
      "number": 1954,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.proc_view",
      "stage": "negative",
      "title": "İzinli süreç metadata görünümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Ps ve debug bilgisi haklara göre süzülür.",
      "action": "os_credentials_proc_view_negative testini oluştur: “Yabancı argv secretı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ps ve debug bilgisi haklara göre süzülür",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_proc_view"
      },
      "dependencies": [
        "K1953"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Kendi sürecini inspect",
      "counterexample": "Yabancı argv secretı",
      "guestAcceptance": "Yalnız izinli alanlar teslim edilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_proc_view_positive",
        "negativeName": "os_credentials_proc_view_negative",
        "expectedMarker": "TURKOS/OS/K1955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yabancı argv secretı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yabancı argv secretı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1954"
    },
    {
      "id": "K1955",
      "number": 1955,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.proc_view",
      "stage": "integration",
      "title": "İzinli süreç metadata görünümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Ps ve debug bilgisi haklara göre süzülür.",
      "action": "Tek ürün Image'ında “Yalnız izinli alanlar teslim edilir” kabulünü koştur. scripts/os-acceptance/credentials.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ps ve debug bilgisi haklara göre süzülür",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_proc_view"
      },
      "dependencies": [
        "K1954"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Kendi sürecini inspect",
      "counterexample": "Yabancı argv secretı",
      "guestAcceptance": "Yalnız izinli alanlar teslim edilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_proc_view_positive",
        "negativeName": "os_credentials_proc_view_negative",
        "expectedMarker": "TURKOS/OS/K1955: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yalnız izinli alanlar teslim edilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yabancı argv secretı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1955"
    },
    {
      "id": "K1956",
      "number": 1956,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.session_cleanup",
      "stage": "contract",
      "title": "Oturum sonu yetki iptali · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Logout bağlı hizmet sessionlarını geçersiz kılar.",
      "action": "“Oturum sonu yetki iptali” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Logout bağlı hizmet sessionlarını geçersiz kılar. “İki aktif channel session” kabulü ile “Eski token tekrar mesajı” reddini aynı sözleşmeye bağla.",
      "invariant": "Logout bağlı hizmet sessionlarını geçersiz kılar",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_session_cleanup"
      },
      "dependencies": [
        "K1955"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki aktif channel session",
      "counterexample": "Eski token tekrar mesajı",
      "guestAcceptance": "Yeni login eski hakları alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_session_cleanup_positive",
        "negativeName": "os_credentials_session_cleanup_negative",
        "expectedMarker": "TURKOS/OS/K1960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Logout bağlı hizmet sessionlarını geçersiz kılar kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski token tekrar mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1956"
    },
    {
      "id": "K1957",
      "number": 1957,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.session_cleanup",
      "stage": "implementation",
      "title": "Oturum sonu yetki iptali · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Logout bağlı hizmet sessionlarını geçersiz kılar.",
      "action": "kernel/src/runtime/credentials.rs hedefinde os_credentials_session_cleanup yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/process.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Logout bağlı hizmet sessionlarını geçersiz kılar",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_session_cleanup"
      },
      "dependencies": [
        "K1956"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki aktif channel session",
      "counterexample": "Eski token tekrar mesajı",
      "guestAcceptance": "Yeni login eski hakları alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_session_cleanup_positive",
        "negativeName": "os_credentials_session_cleanup_negative",
        "expectedMarker": "TURKOS/OS/K1960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki aktif channel session ile Eski token tekrar mesajı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski token tekrar mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1957"
    },
    {
      "id": "K1958",
      "number": 1958,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.session_cleanup",
      "stage": "positive",
      "title": "Oturum sonu yetki iptali · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Logout bağlı hizmet sessionlarını geçersiz kılar.",
      "action": "os_credentials_session_cleanup_positive testini oluştur: “İki aktif channel session”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Logout bağlı hizmet sessionlarını geçersiz kılar",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_session_cleanup"
      },
      "dependencies": [
        "K1957"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki aktif channel session",
      "counterexample": "Eski token tekrar mesajı",
      "guestAcceptance": "Yeni login eski hakları alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_session_cleanup_positive",
        "negativeName": "os_credentials_session_cleanup_negative",
        "expectedMarker": "TURKOS/OS/K1960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki aktif channel session girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski token tekrar mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1958"
    },
    {
      "id": "K1959",
      "number": 1959,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.session_cleanup",
      "stage": "negative",
      "title": "Oturum sonu yetki iptali · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Logout bağlı hizmet sessionlarını geçersiz kılar.",
      "action": "os_credentials_session_cleanup_negative testini oluştur: “Eski token tekrar mesajı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Logout bağlı hizmet sessionlarını geçersiz kılar",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_session_cleanup"
      },
      "dependencies": [
        "K1958"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki aktif channel session",
      "counterexample": "Eski token tekrar mesajı",
      "guestAcceptance": "Yeni login eski hakları alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_session_cleanup_positive",
        "negativeName": "os_credentials_session_cleanup_negative",
        "expectedMarker": "TURKOS/OS/K1960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski token tekrar mesajı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski token tekrar mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1959"
    },
    {
      "id": "K1960",
      "number": 1960,
      "phase": 14,
      "module": "credentials",
      "feature": "credentials.session_cleanup",
      "stage": "integration",
      "title": "Oturum sonu yetki iptali · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Logout bağlı hizmet sessionlarını geçersiz kılar.",
      "action": "Tek ürün Image'ında “Yeni login eski hakları alamaz” kabulünü koştur. scripts/os-acceptance/credentials.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Logout bağlı hizmet sessionlarını geçersiz kılar",
      "source": {
        "target": "kernel/src/runtime/credentials.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/process.rs",
        "existingReferenceSha256": "0079e9478383b02fc020ee6212c4f2100f50128b53cfac4521afadccd7f8a9cb",
        "symbol": "os_credentials_session_cleanup"
      },
      "dependencies": [
        "K1959"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İki aktif channel session",
      "counterexample": "Eski token tekrar mesajı",
      "guestAcceptance": "Yeni login eski hakları alamaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/credentials.rs",
        "harness": "scripts/os-acceptance/credentials.mjs",
        "positiveName": "os_credentials_session_cleanup_positive",
        "negativeName": "os_credentials_session_cleanup_negative",
        "expectedMarker": "TURKOS/OS/K1960: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni login eski hakları alamaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski token tekrar mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1960"
    },
    {
      "id": "K1961",
      "number": 1961,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.manifest",
      "stage": "contract",
      "title": "İmzalı manifest sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Hash imza ve güven kökü ayrıdır.",
      "action": "“İmzalı manifest sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hash imza ve güven kökü ayrıdır. “Bilinen test keyli manifest” kabulü ile “Yanlış hash veya bilinmeyen key” reddini aynı sözleşmeye bağla.",
      "invariant": "Hash imza ve güven kökü ayrıdır",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_manifest"
      },
      "dependencies": [
        "K1960"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Bilinen test keyli manifest",
      "counterexample": "Yanlış hash veya bilinmeyen key",
      "guestAcceptance": "Ret kullanıcı programını başlatmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_manifest_positive",
        "negativeName": "os_image_trust_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hash imza ve güven kökü ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanlış hash veya bilinmeyen key” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1961"
    },
    {
      "id": "K1962",
      "number": 1962,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.manifest",
      "stage": "implementation",
      "title": "İmzalı manifest sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Hash imza ve güven kökü ayrıdır.",
      "action": "userspace/src/image_trust.rs hedefinde os_image_trust_manifest yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hash imza ve güven kökü ayrıdır",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_manifest"
      },
      "dependencies": [
        "K1961"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Bilinen test keyli manifest",
      "counterexample": "Yanlış hash veya bilinmeyen key",
      "guestAcceptance": "Ret kullanıcı programını başlatmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_manifest_positive",
        "negativeName": "os_image_trust_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bilinen test keyli manifest ile Yanlış hash veya bilinmeyen key ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanlış hash veya bilinmeyen key” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1962"
    },
    {
      "id": "K1963",
      "number": 1963,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.manifest",
      "stage": "positive",
      "title": "İmzalı manifest sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Hash imza ve güven kökü ayrıdır.",
      "action": "os_image_trust_manifest_positive testini oluştur: “Bilinen test keyli manifest”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hash imza ve güven kökü ayrıdır",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_manifest"
      },
      "dependencies": [
        "K1962"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Bilinen test keyli manifest",
      "counterexample": "Yanlış hash veya bilinmeyen key",
      "guestAcceptance": "Ret kullanıcı programını başlatmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_manifest_positive",
        "negativeName": "os_image_trust_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bilinen test keyli manifest girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanlış hash veya bilinmeyen key” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1963"
    },
    {
      "id": "K1964",
      "number": 1964,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.manifest",
      "stage": "negative",
      "title": "İmzalı manifest sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Hash imza ve güven kökü ayrıdır.",
      "action": "os_image_trust_manifest_negative testini oluştur: “Yanlış hash veya bilinmeyen key”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hash imza ve güven kökü ayrıdır",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_manifest"
      },
      "dependencies": [
        "K1963"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Bilinen test keyli manifest",
      "counterexample": "Yanlış hash veya bilinmeyen key",
      "guestAcceptance": "Ret kullanıcı programını başlatmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_manifest_positive",
        "negativeName": "os_image_trust_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış hash veya bilinmeyen key karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanlış hash veya bilinmeyen key” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1964"
    },
    {
      "id": "K1965",
      "number": 1965,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.manifest",
      "stage": "integration",
      "title": "İmzalı manifest sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Hash imza ve güven kökü ayrıdır.",
      "action": "Tek ürün Image'ında “Ret kullanıcı programını başlatmaz” kabulünü koştur. scripts/os-acceptance/image_trust.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hash imza ve güven kökü ayrıdır",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_manifest"
      },
      "dependencies": [
        "K1964"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Bilinen test keyli manifest",
      "counterexample": "Yanlış hash veya bilinmeyen key",
      "guestAcceptance": "Ret kullanıcı programını başlatmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_manifest_positive",
        "negativeName": "os_image_trust_manifest_negative",
        "expectedMarker": "TURKOS/OS/K1965: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret kullanıcı programını başlatmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanlış hash veya bilinmeyen key” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1965"
    },
    {
      "id": "K1966",
      "number": 1966,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rollback",
      "stage": "contract",
      "title": "Sürüm geri alma politikası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Kalıcı floor yoksa antirollback iddia edilmez.",
      "action": "“Sürüm geri alma politikası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kalıcı floor yoksa antirollback iddia edilmez. “Yeni sequence test fikstürü” kabulü ile “Eski veya eşit sequence” reddini aynı sözleşmeye bağla.",
      "invariant": "Kalıcı floor yoksa antirollback iddia edilmez",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rollback"
      },
      "dependencies": [
        "K1965"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yeni sequence test fikstürü",
      "counterexample": "Eski veya eşit sequence",
      "guestAcceptance": "Prototip ret ve sınırı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rollback_positive",
        "negativeName": "os_image_trust_rollback_negative",
        "expectedMarker": "TURKOS/OS/K1970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kalıcı floor yoksa antirollback iddia edilmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski veya eşit sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1966"
    },
    {
      "id": "K1967",
      "number": 1967,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rollback",
      "stage": "implementation",
      "title": "Sürüm geri alma politikası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Kalıcı floor yoksa antirollback iddia edilmez.",
      "action": "userspace/src/image_trust.rs hedefinde os_image_trust_rollback yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kalıcı floor yoksa antirollback iddia edilmez",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rollback"
      },
      "dependencies": [
        "K1966"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yeni sequence test fikstürü",
      "counterexample": "Eski veya eşit sequence",
      "guestAcceptance": "Prototip ret ve sınırı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rollback_positive",
        "negativeName": "os_image_trust_rollback_negative",
        "expectedMarker": "TURKOS/OS/K1970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yeni sequence test fikstürü ile Eski veya eşit sequence ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski veya eşit sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1967"
    },
    {
      "id": "K1968",
      "number": 1968,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rollback",
      "stage": "positive",
      "title": "Sürüm geri alma politikası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Kalıcı floor yoksa antirollback iddia edilmez.",
      "action": "os_image_trust_rollback_positive testini oluştur: “Yeni sequence test fikstürü”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kalıcı floor yoksa antirollback iddia edilmez",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rollback"
      },
      "dependencies": [
        "K1967"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yeni sequence test fikstürü",
      "counterexample": "Eski veya eşit sequence",
      "guestAcceptance": "Prototip ret ve sınırı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rollback_positive",
        "negativeName": "os_image_trust_rollback_negative",
        "expectedMarker": "TURKOS/OS/K1970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yeni sequence test fikstürü girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski veya eşit sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1968"
    },
    {
      "id": "K1969",
      "number": 1969,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rollback",
      "stage": "negative",
      "title": "Sürüm geri alma politikası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Kalıcı floor yoksa antirollback iddia edilmez.",
      "action": "os_image_trust_rollback_negative testini oluştur: “Eski veya eşit sequence”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kalıcı floor yoksa antirollback iddia edilmez",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rollback"
      },
      "dependencies": [
        "K1968"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yeni sequence test fikstürü",
      "counterexample": "Eski veya eşit sequence",
      "guestAcceptance": "Prototip ret ve sınırı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rollback_positive",
        "negativeName": "os_image_trust_rollback_negative",
        "expectedMarker": "TURKOS/OS/K1970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski veya eşit sequence karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski veya eşit sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1969"
    },
    {
      "id": "K1970",
      "number": 1970,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rollback",
      "stage": "integration",
      "title": "Sürüm geri alma politikası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Kalıcı floor yoksa antirollback iddia edilmez.",
      "action": "Tek ürün Image'ında “Prototip ret ve sınırı görünür” kabulünü koştur. scripts/os-acceptance/image_trust.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kalıcı floor yoksa antirollback iddia edilmez",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rollback"
      },
      "dependencies": [
        "K1969"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Yeni sequence test fikstürü",
      "counterexample": "Eski veya eşit sequence",
      "guestAcceptance": "Prototip ret ve sınırı görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rollback_positive",
        "negativeName": "os_image_trust_rollback_negative",
        "expectedMarker": "TURKOS/OS/K1970: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Prototip ret ve sınırı görünür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski veya eşit sequence” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1970"
    },
    {
      "id": "K1971",
      "number": 1971,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rotation",
      "stage": "contract",
      "title": "Anahtar değişim ve iptal modeli · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Eski anahtar otomatik trusted olmaz.",
      "action": "“Anahtar değişim ve iptal modeli” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Eski anahtar otomatik trusted olmaz. “Sürümlü yeni key kaydı” kabulü ile “İptal keyle imza” reddini aynı sözleşmeye bağla.",
      "invariant": "Eski anahtar otomatik trusted olmaz",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rotation"
      },
      "dependencies": [
        "K1970"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü yeni key kaydı",
      "counterexample": "İptal keyle imza",
      "guestAcceptance": "İptal edilmiş paket reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rotation_positive",
        "negativeName": "os_image_trust_rotation_negative",
        "expectedMarker": "TURKOS/OS/K1975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Eski anahtar otomatik trusted olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İptal keyle imza” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1971"
    },
    {
      "id": "K1972",
      "number": 1972,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rotation",
      "stage": "implementation",
      "title": "Anahtar değişim ve iptal modeli · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Eski anahtar otomatik trusted olmaz.",
      "action": "userspace/src/image_trust.rs hedefinde os_image_trust_rotation yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Eski anahtar otomatik trusted olmaz",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rotation"
      },
      "dependencies": [
        "K1971"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü yeni key kaydı",
      "counterexample": "İptal keyle imza",
      "guestAcceptance": "İptal edilmiş paket reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rotation_positive",
        "negativeName": "os_image_trust_rotation_negative",
        "expectedMarker": "TURKOS/OS/K1975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Sürümlü yeni key kaydı ile İptal keyle imza ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İptal keyle imza” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1972"
    },
    {
      "id": "K1973",
      "number": 1973,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rotation",
      "stage": "positive",
      "title": "Anahtar değişim ve iptal modeli · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Eski anahtar otomatik trusted olmaz.",
      "action": "os_image_trust_rotation_positive testini oluştur: “Sürümlü yeni key kaydı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Eski anahtar otomatik trusted olmaz",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rotation"
      },
      "dependencies": [
        "K1972"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü yeni key kaydı",
      "counterexample": "İptal keyle imza",
      "guestAcceptance": "İptal edilmiş paket reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rotation_positive",
        "negativeName": "os_image_trust_rotation_negative",
        "expectedMarker": "TURKOS/OS/K1975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Sürümlü yeni key kaydı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İptal keyle imza” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1973"
    },
    {
      "id": "K1974",
      "number": 1974,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rotation",
      "stage": "negative",
      "title": "Anahtar değişim ve iptal modeli · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Eski anahtar otomatik trusted olmaz.",
      "action": "os_image_trust_rotation_negative testini oluştur: “İptal keyle imza”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Eski anahtar otomatik trusted olmaz",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rotation"
      },
      "dependencies": [
        "K1973"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü yeni key kaydı",
      "counterexample": "İptal keyle imza",
      "guestAcceptance": "İptal edilmiş paket reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rotation_positive",
        "negativeName": "os_image_trust_rotation_negative",
        "expectedMarker": "TURKOS/OS/K1975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İptal keyle imza karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İptal keyle imza” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1974"
    },
    {
      "id": "K1975",
      "number": 1975,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.rotation",
      "stage": "integration",
      "title": "Anahtar değişim ve iptal modeli · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Eski anahtar otomatik trusted olmaz.",
      "action": "Tek ürün Image'ında “İptal edilmiş paket reddedilir” kabulünü koştur. scripts/os-acceptance/image_trust.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Eski anahtar otomatik trusted olmaz",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_rotation"
      },
      "dependencies": [
        "K1974"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Sürümlü yeni key kaydı",
      "counterexample": "İptal keyle imza",
      "guestAcceptance": "İptal edilmiş paket reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_rotation_positive",
        "negativeName": "os_image_trust_rotation_negative",
        "expectedMarker": "TURKOS/OS/K1975: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İptal edilmiş paket reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İptal keyle imza” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1975"
    },
    {
      "id": "K1976",
      "number": 1976,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.recovery_root",
      "stage": "contract",
      "title": "Kurtarma güven kökü ayrımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Recovery bypass normal update yetkisi değildir.",
      "action": "“Kurtarma güven kökü ayrımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Recovery bypass normal update yetkisi değildir. “Ayrı test recovery manifesti” kabulü ile “Normal paket recovery diye sunulur” reddini aynı sözleşmeye bağla.",
      "invariant": "Recovery bypass normal update yetkisi değildir",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_recovery_root"
      },
      "dependencies": [
        "K1975"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Ayrı test recovery manifesti",
      "counterexample": "Normal paket recovery diye sunulur",
      "guestAcceptance": "Mod ve operatör kararı kayıtta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_recovery_root_positive",
        "negativeName": "os_image_trust_recovery_root_negative",
        "expectedMarker": "TURKOS/OS/K1980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Recovery bypass normal update yetkisi değildir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Normal paket recovery diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1976"
    },
    {
      "id": "K1977",
      "number": 1977,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.recovery_root",
      "stage": "implementation",
      "title": "Kurtarma güven kökü ayrımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Recovery bypass normal update yetkisi değildir.",
      "action": "userspace/src/image_trust.rs hedefinde os_image_trust_recovery_root yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Recovery bypass normal update yetkisi değildir",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_recovery_root"
      },
      "dependencies": [
        "K1976"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Ayrı test recovery manifesti",
      "counterexample": "Normal paket recovery diye sunulur",
      "guestAcceptance": "Mod ve operatör kararı kayıtta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_recovery_root_positive",
        "negativeName": "os_image_trust_recovery_root_negative",
        "expectedMarker": "TURKOS/OS/K1980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Ayrı test recovery manifesti ile Normal paket recovery diye sunulur ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Normal paket recovery diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1977"
    },
    {
      "id": "K1978",
      "number": 1978,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.recovery_root",
      "stage": "positive",
      "title": "Kurtarma güven kökü ayrımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Recovery bypass normal update yetkisi değildir.",
      "action": "os_image_trust_recovery_root_positive testini oluştur: “Ayrı test recovery manifesti”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Recovery bypass normal update yetkisi değildir",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_recovery_root"
      },
      "dependencies": [
        "K1977"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Ayrı test recovery manifesti",
      "counterexample": "Normal paket recovery diye sunulur",
      "guestAcceptance": "Mod ve operatör kararı kayıtta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_recovery_root_positive",
        "negativeName": "os_image_trust_recovery_root_negative",
        "expectedMarker": "TURKOS/OS/K1980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Ayrı test recovery manifesti girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Normal paket recovery diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1978"
    },
    {
      "id": "K1979",
      "number": 1979,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.recovery_root",
      "stage": "negative",
      "title": "Kurtarma güven kökü ayrımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Recovery bypass normal update yetkisi değildir.",
      "action": "os_image_trust_recovery_root_negative testini oluştur: “Normal paket recovery diye sunulur”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Recovery bypass normal update yetkisi değildir",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_recovery_root"
      },
      "dependencies": [
        "K1978"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Ayrı test recovery manifesti",
      "counterexample": "Normal paket recovery diye sunulur",
      "guestAcceptance": "Mod ve operatör kararı kayıtta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_recovery_root_positive",
        "negativeName": "os_image_trust_recovery_root_negative",
        "expectedMarker": "TURKOS/OS/K1980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Normal paket recovery diye sunulur karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Normal paket recovery diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1979"
    },
    {
      "id": "K1980",
      "number": 1980,
      "phase": 14,
      "module": "image_trust",
      "feature": "image_trust.recovery_root",
      "stage": "integration",
      "title": "Kurtarma güven kökü ayrımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Recovery bypass normal update yetkisi değildir.",
      "action": "Tek ürün Image'ında “Mod ve operatör kararı kayıtta” kabulünü koştur. scripts/os-acceptance/image_trust.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Recovery bypass normal update yetkisi değildir",
      "source": {
        "target": "userspace/src/image_trust.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_image_trust_recovery_root"
      },
      "dependencies": [
        "K1979"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Ayrı test recovery manifesti",
      "counterexample": "Normal paket recovery diye sunulur",
      "guestAcceptance": "Mod ve operatör kararı kayıtta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/image_trust.rs",
        "harness": "scripts/os-acceptance/image_trust.mjs",
        "positiveName": "os_image_trust_recovery_root_positive",
        "negativeName": "os_image_trust_recovery_root_negative",
        "expectedMarker": "TURKOS/OS/K1980: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Mod ve operatör kararı kayıtta; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Normal paket recovery diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1980"
    },
    {
      "id": "K1981",
      "number": 1981,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.threat_model",
      "stage": "contract",
      "title": "Uçtan uca tehdit matrisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Assets trust sınırı ve dışlanan saldırı yazılır.",
      "action": "“Uçtan uca tehdit matrisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Assets trust sınırı ve dışlanan saldırı yazılır. “EL0 disk network saldırı yüzeyi” kabulü ile “Tehdit modeli MMIOyu atlar” reddini aynı sözleşmeye bağla.",
      "invariant": "Assets trust sınırı ve dışlanan saldırı yazılır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_threat_model"
      },
      "dependencies": [
        "K1980"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "EL0 disk network saldırı yüzeyi",
      "counterexample": "Tehdit modeli MMIOyu atlar",
      "guestAcceptance": "Eksik kapsam kabul kapısını açık tutar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_threat_model_positive",
        "negativeName": "os_security_audit_threat_model_negative",
        "expectedMarker": "TURKOS/OS/K1985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Assets trust sınırı ve dışlanan saldırı yazılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Tehdit modeli MMIOyu atlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1981"
    },
    {
      "id": "K1982",
      "number": 1982,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.threat_model",
      "stage": "implementation",
      "title": "Uçtan uca tehdit matrisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Assets trust sınırı ve dışlanan saldırı yazılır.",
      "action": "kernel/src/runtime/security_audit.rs hedefinde os_security_audit_threat_model yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/write_release.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Assets trust sınırı ve dışlanan saldırı yazılır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_threat_model"
      },
      "dependencies": [
        "K1981"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "EL0 disk network saldırı yüzeyi",
      "counterexample": "Tehdit modeli MMIOyu atlar",
      "guestAcceptance": "Eksik kapsam kabul kapısını açık tutar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_threat_model_positive",
        "negativeName": "os_security_audit_threat_model_negative",
        "expectedMarker": "TURKOS/OS/K1985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. EL0 disk network saldırı yüzeyi ile Tehdit modeli MMIOyu atlar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Tehdit modeli MMIOyu atlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1982"
    },
    {
      "id": "K1983",
      "number": 1983,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.threat_model",
      "stage": "positive",
      "title": "Uçtan uca tehdit matrisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Assets trust sınırı ve dışlanan saldırı yazılır.",
      "action": "os_security_audit_threat_model_positive testini oluştur: “EL0 disk network saldırı yüzeyi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Assets trust sınırı ve dışlanan saldırı yazılır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_threat_model"
      },
      "dependencies": [
        "K1982"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "EL0 disk network saldırı yüzeyi",
      "counterexample": "Tehdit modeli MMIOyu atlar",
      "guestAcceptance": "Eksik kapsam kabul kapısını açık tutar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_threat_model_positive",
        "negativeName": "os_security_audit_threat_model_negative",
        "expectedMarker": "TURKOS/OS/K1985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; EL0 disk network saldırı yüzeyi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Tehdit modeli MMIOyu atlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1983"
    },
    {
      "id": "K1984",
      "number": 1984,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.threat_model",
      "stage": "negative",
      "title": "Uçtan uca tehdit matrisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Assets trust sınırı ve dışlanan saldırı yazılır.",
      "action": "os_security_audit_threat_model_negative testini oluştur: “Tehdit modeli MMIOyu atlar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Assets trust sınırı ve dışlanan saldırı yazılır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_threat_model"
      },
      "dependencies": [
        "K1983"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "EL0 disk network saldırı yüzeyi",
      "counterexample": "Tehdit modeli MMIOyu atlar",
      "guestAcceptance": "Eksik kapsam kabul kapısını açık tutar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_threat_model_positive",
        "negativeName": "os_security_audit_threat_model_negative",
        "expectedMarker": "TURKOS/OS/K1985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tehdit modeli MMIOyu atlar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Tehdit modeli MMIOyu atlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1984"
    },
    {
      "id": "K1985",
      "number": 1985,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.threat_model",
      "stage": "integration",
      "title": "Uçtan uca tehdit matrisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Assets trust sınırı ve dışlanan saldırı yazılır.",
      "action": "Tek ürün Image'ında “Eksik kapsam kabul kapısını açık tutar” kabulünü koştur. scripts/os-acceptance/security_audit.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Assets trust sınırı ve dışlanan saldırı yazılır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_threat_model"
      },
      "dependencies": [
        "K1984"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "EL0 disk network saldırı yüzeyi",
      "counterexample": "Tehdit modeli MMIOyu atlar",
      "guestAcceptance": "Eksik kapsam kabul kapısını açık tutar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_threat_model_positive",
        "negativeName": "os_security_audit_threat_model_negative",
        "expectedMarker": "TURKOS/OS/K1985: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik kapsam kabul kapısını açık tutar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Tehdit modeli MMIOyu atlar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1985"
    },
    {
      "id": "K1986",
      "number": 1986,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.unsafe_inventory",
      "stage": "contract",
      "title": "Unsafe ve assembly envanteri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Her unsafe için sahiplik ömür invariantı vardır.",
      "action": "“Unsafe ve assembly envanteri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her unsafe için sahiplik ömür invariantı vardır. “MMIO ve ERET kesitleri” kabulü ile “Yeni unsafe açıklamasız eklenir” reddini aynı sözleşmeye bağla.",
      "invariant": "Her unsafe için sahiplik ömür invariantı vardır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_unsafe_inventory"
      },
      "dependencies": [
        "K1985"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "MMIO ve ERET kesitleri",
      "counterexample": "Yeni unsafe açıklamasız eklenir",
      "guestAcceptance": "İnceleme kapısı kaydı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_unsafe_inventory_positive",
        "negativeName": "os_security_audit_unsafe_inventory_negative",
        "expectedMarker": "TURKOS/OS/K1990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her unsafe için sahiplik ömür invariantı vardır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yeni unsafe açıklamasız eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1986"
    },
    {
      "id": "K1987",
      "number": 1987,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.unsafe_inventory",
      "stage": "implementation",
      "title": "Unsafe ve assembly envanteri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Her unsafe için sahiplik ömür invariantı vardır.",
      "action": "kernel/src/runtime/security_audit.rs hedefinde os_security_audit_unsafe_inventory yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/write_release.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her unsafe için sahiplik ömür invariantı vardır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_unsafe_inventory"
      },
      "dependencies": [
        "K1986"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "MMIO ve ERET kesitleri",
      "counterexample": "Yeni unsafe açıklamasız eklenir",
      "guestAcceptance": "İnceleme kapısı kaydı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_unsafe_inventory_positive",
        "negativeName": "os_security_audit_unsafe_inventory_negative",
        "expectedMarker": "TURKOS/OS/K1990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. MMIO ve ERET kesitleri ile Yeni unsafe açıklamasız eklenir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yeni unsafe açıklamasız eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1987"
    },
    {
      "id": "K1988",
      "number": 1988,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.unsafe_inventory",
      "stage": "positive",
      "title": "Unsafe ve assembly envanteri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Her unsafe için sahiplik ömür invariantı vardır.",
      "action": "os_security_audit_unsafe_inventory_positive testini oluştur: “MMIO ve ERET kesitleri”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her unsafe için sahiplik ömür invariantı vardır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_unsafe_inventory"
      },
      "dependencies": [
        "K1987"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "MMIO ve ERET kesitleri",
      "counterexample": "Yeni unsafe açıklamasız eklenir",
      "guestAcceptance": "İnceleme kapısı kaydı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_unsafe_inventory_positive",
        "negativeName": "os_security_audit_unsafe_inventory_negative",
        "expectedMarker": "TURKOS/OS/K1990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; MMIO ve ERET kesitleri girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yeni unsafe açıklamasız eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1988"
    },
    {
      "id": "K1989",
      "number": 1989,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.unsafe_inventory",
      "stage": "negative",
      "title": "Unsafe ve assembly envanteri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Her unsafe için sahiplik ömür invariantı vardır.",
      "action": "os_security_audit_unsafe_inventory_negative testini oluştur: “Yeni unsafe açıklamasız eklenir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her unsafe için sahiplik ömür invariantı vardır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_unsafe_inventory"
      },
      "dependencies": [
        "K1988"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "MMIO ve ERET kesitleri",
      "counterexample": "Yeni unsafe açıklamasız eklenir",
      "guestAcceptance": "İnceleme kapısı kaydı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_unsafe_inventory_positive",
        "negativeName": "os_security_audit_unsafe_inventory_negative",
        "expectedMarker": "TURKOS/OS/K1990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni unsafe açıklamasız eklenir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yeni unsafe açıklamasız eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1989"
    },
    {
      "id": "K1990",
      "number": 1990,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.unsafe_inventory",
      "stage": "integration",
      "title": "Unsafe ve assembly envanteri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Her unsafe için sahiplik ömür invariantı vardır.",
      "action": "Tek ürün Image'ında “İnceleme kapısı kaydı reddeder” kabulünü koştur. scripts/os-acceptance/security_audit.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her unsafe için sahiplik ömür invariantı vardır",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_unsafe_inventory"
      },
      "dependencies": [
        "K1989"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "MMIO ve ERET kesitleri",
      "counterexample": "Yeni unsafe açıklamasız eklenir",
      "guestAcceptance": "İnceleme kapısı kaydı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_unsafe_inventory_positive",
        "negativeName": "os_security_audit_unsafe_inventory_negative",
        "expectedMarker": "TURKOS/OS/K1990: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İnceleme kapısı kaydı reddeder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yeni unsafe açıklamasız eklenir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1990"
    },
    {
      "id": "K1991",
      "number": 1991,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.debug_policy",
      "stage": "contract",
      "title": "Debug ve release bilgi sınırı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Debug aracı ürün kernel yetkisini genişletmez.",
      "action": "“Debug ve release bilgi sınırı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Debug aracı ürün kernel yetkisini genişletmez. “İzinli kontrollü debugger” kabulü ile “Productionda raw memory dump” reddini aynı sözleşmeye bağla.",
      "invariant": "Debug aracı ürün kernel yetkisini genişletmez",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_debug_policy"
      },
      "dependencies": [
        "K1990"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İzinli kontrollü debugger",
      "counterexample": "Productionda raw memory dump",
      "guestAcceptance": "Yetkisiz dump açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_debug_policy_positive",
        "negativeName": "os_security_audit_debug_policy_negative",
        "expectedMarker": "TURKOS/OS/K1995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Debug aracı ürün kernel yetkisini genişletmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Productionda raw memory dump” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1991"
    },
    {
      "id": "K1992",
      "number": 1992,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.debug_policy",
      "stage": "implementation",
      "title": "Debug ve release bilgi sınırı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Debug aracı ürün kernel yetkisini genişletmez.",
      "action": "kernel/src/runtime/security_audit.rs hedefinde os_security_audit_debug_policy yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/write_release.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Debug aracı ürün kernel yetkisini genişletmez",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_debug_policy"
      },
      "dependencies": [
        "K1991"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İzinli kontrollü debugger",
      "counterexample": "Productionda raw memory dump",
      "guestAcceptance": "Yetkisiz dump açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_debug_policy_positive",
        "negativeName": "os_security_audit_debug_policy_negative",
        "expectedMarker": "TURKOS/OS/K1995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İzinli kontrollü debugger ile Productionda raw memory dump ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Productionda raw memory dump” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1992"
    },
    {
      "id": "K1993",
      "number": 1993,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.debug_policy",
      "stage": "positive",
      "title": "Debug ve release bilgi sınırı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Debug aracı ürün kernel yetkisini genişletmez.",
      "action": "os_security_audit_debug_policy_positive testini oluştur: “İzinli kontrollü debugger”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Debug aracı ürün kernel yetkisini genişletmez",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_debug_policy"
      },
      "dependencies": [
        "K1992"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İzinli kontrollü debugger",
      "counterexample": "Productionda raw memory dump",
      "guestAcceptance": "Yetkisiz dump açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_debug_policy_positive",
        "negativeName": "os_security_audit_debug_policy_negative",
        "expectedMarker": "TURKOS/OS/K1995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İzinli kontrollü debugger girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Productionda raw memory dump” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1993"
    },
    {
      "id": "K1994",
      "number": 1994,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.debug_policy",
      "stage": "negative",
      "title": "Debug ve release bilgi sınırı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Debug aracı ürün kernel yetkisini genişletmez.",
      "action": "os_security_audit_debug_policy_negative testini oluştur: “Productionda raw memory dump”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Debug aracı ürün kernel yetkisini genişletmez",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_debug_policy"
      },
      "dependencies": [
        "K1993"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İzinli kontrollü debugger",
      "counterexample": "Productionda raw memory dump",
      "guestAcceptance": "Yetkisiz dump açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_debug_policy_positive",
        "negativeName": "os_security_audit_debug_policy_negative",
        "expectedMarker": "TURKOS/OS/K1995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Productionda raw memory dump karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Productionda raw memory dump” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1994"
    },
    {
      "id": "K1995",
      "number": 1995,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.debug_policy",
      "stage": "integration",
      "title": "Debug ve release bilgi sınırı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Debug aracı ürün kernel yetkisini genişletmez.",
      "action": "Tek ürün Image'ında “Yetkisiz dump açık ret verir” kabulünü koştur. scripts/os-acceptance/security_audit.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Debug aracı ürün kernel yetkisini genişletmez",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_debug_policy"
      },
      "dependencies": [
        "K1994"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "İzinli kontrollü debugger",
      "counterexample": "Productionda raw memory dump",
      "guestAcceptance": "Yetkisiz dump açık ret verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_debug_policy_positive",
        "negativeName": "os_security_audit_debug_policy_negative",
        "expectedMarker": "TURKOS/OS/K1995: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yetkisiz dump açık ret verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Productionda raw memory dump” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1995"
    },
    {
      "id": "K1996",
      "number": 1996,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.independent_review",
      "stage": "contract",
      "title": "Bağımsız güvenlik incelemesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geliştirici modeli review diye sayılmaz.",
      "action": "“Bağımsız güvenlik incelemesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Geliştirici modeli review diye sayılmaz. “Gerçek reviewer ve hashli scope” kabulü ile “AI veya self review raporu” reddini aynı sözleşmeye bağla.",
      "invariant": "Geliştirici modeli review diye sayılmaz",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_independent_review"
      },
      "dependencies": [
        "K1995"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Gerçek reviewer ve hashli scope",
      "counterexample": "AI veya self review raporu",
      "guestAcceptance": "K559 ve ilgili kapılar dış kanıtla değerlendirilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_independent_review_positive",
        "negativeName": "os_security_audit_independent_review_negative",
        "expectedMarker": "TURKOS/OS/K2000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Geliştirici modeli review diye sayılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“AI veya self review raporu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1996"
    },
    {
      "id": "K1997",
      "number": 1997,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.independent_review",
      "stage": "implementation",
      "title": "Bağımsız güvenlik incelemesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geliştirici modeli review diye sayılmaz.",
      "action": "kernel/src/runtime/security_audit.rs hedefinde os_security_audit_independent_review yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/write_release.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Geliştirici modeli review diye sayılmaz",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_independent_review"
      },
      "dependencies": [
        "K1996"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Gerçek reviewer ve hashli scope",
      "counterexample": "AI veya self review raporu",
      "guestAcceptance": "K559 ve ilgili kapılar dış kanıtla değerlendirilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_independent_review_positive",
        "negativeName": "os_security_audit_independent_review_negative",
        "expectedMarker": "TURKOS/OS/K2000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Gerçek reviewer ve hashli scope ile AI veya self review raporu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“AI veya self review raporu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1997"
    },
    {
      "id": "K1998",
      "number": 1998,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.independent_review",
      "stage": "positive",
      "title": "Bağımsız güvenlik incelemesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geliştirici modeli review diye sayılmaz.",
      "action": "os_security_audit_independent_review_positive testini oluştur: “Gerçek reviewer ve hashli scope”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Geliştirici modeli review diye sayılmaz",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_independent_review"
      },
      "dependencies": [
        "K1997"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Gerçek reviewer ve hashli scope",
      "counterexample": "AI veya self review raporu",
      "guestAcceptance": "K559 ve ilgili kapılar dış kanıtla değerlendirilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_independent_review_positive",
        "negativeName": "os_security_audit_independent_review_negative",
        "expectedMarker": "TURKOS/OS/K2000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Gerçek reviewer ve hashli scope girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“AI veya self review raporu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1998"
    },
    {
      "id": "K1999",
      "number": 1999,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.independent_review",
      "stage": "negative",
      "title": "Bağımsız güvenlik incelemesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geliştirici modeli review diye sayılmaz.",
      "action": "os_security_audit_independent_review_negative testini oluştur: “AI veya self review raporu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Geliştirici modeli review diye sayılmaz",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_independent_review"
      },
      "dependencies": [
        "K1998"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Gerçek reviewer ve hashli scope",
      "counterexample": "AI veya self review raporu",
      "guestAcceptance": "K559 ve ilgili kapılar dış kanıtla değerlendirilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_independent_review_positive",
        "negativeName": "os_security_audit_independent_review_negative",
        "expectedMarker": "TURKOS/OS/K2000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "AI veya self review raporu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“AI veya self review raporu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k1999"
    },
    {
      "id": "K2000",
      "number": 2000,
      "phase": 14,
      "module": "security_audit",
      "feature": "security_audit.independent_review",
      "stage": "integration",
      "title": "Bağımsız güvenlik incelemesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Temel pointer ve hak kontrolleri önceki fazların zorunlu parçalarıdır. Bu faz bunları sistem tehdit modeliyle denetler; kendi kriptografisini icat etmez. Bu hamlenin koruduğu değişmez: Geliştirici modeli review diye sayılmaz.",
      "action": "Tek ürün Image'ında “K559 ve ilgili kapılar dış kanıtla değerlendirilir” kabulünü koştur. scripts/os-acceptance/security_audit.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Geliştirici modeli review diye sayılmaz",
      "source": {
        "target": "kernel/src/runtime/security_audit.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_security_audit_independent_review"
      },
      "dependencies": [
        "K1999"
      ],
      "phasePrerequisites": [
        13
      ],
      "positive": "Gerçek reviewer ve hashli scope",
      "counterexample": "AI veya self review raporu",
      "guestAcceptance": "K559 ve ilgili kapılar dış kanıtla değerlendirilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/security_audit.rs",
        "harness": "scripts/os-acceptance/security_audit.mjs",
        "positiveName": "os_security_audit_independent_review_positive",
        "negativeName": "os_security_audit_independent_review_negative",
        "expectedMarker": "TURKOS/OS/K2000: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "K559 ve ilgili kapılar dış kanıtla değerlendirilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“AI veya self review raporu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-14#k2000"
    },
    {
      "id": "K2001",
      "number": 2001,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.topology",
      "stage": "contract",
      "title": "DTB CPU topology · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: MPIDR kimliği logical CPUdan ayrıdır.",
      "action": "“DTB CPU topology” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: MPIDR kimliği logical CPUdan ayrıdır. “İki ve dört CPU düğümü” kabulü ile “Duplicate MPIDR veya disabled CPU” reddini aynı sözleşmeye bağla.",
      "invariant": "MPIDR kimliği logical CPUdan ayrıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_topology"
      },
      "dependencies": [],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki ve dört CPU düğümü",
      "counterexample": "Duplicate MPIDR veya disabled CPU",
      "guestAcceptance": "Her CPU bir logical slot alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_topology_positive",
        "negativeName": "os_smp_boot_topology_negative",
        "expectedMarker": "TURKOS/OS/K2005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu MPIDR kimliği logical CPUdan ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Duplicate MPIDR veya disabled CPU” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2001"
    },
    {
      "id": "K2002",
      "number": 2002,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.topology",
      "stage": "implementation",
      "title": "DTB CPU topology · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: MPIDR kimliği logical CPUdan ayrıdır.",
      "action": "kernel/src/arch/aarch64/smp_boot.rs hedefinde os_smp_boot_topology yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "MPIDR kimliği logical CPUdan ayrıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_topology"
      },
      "dependencies": [
        "K2001"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki ve dört CPU düğümü",
      "counterexample": "Duplicate MPIDR veya disabled CPU",
      "guestAcceptance": "Her CPU bir logical slot alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_topology_positive",
        "negativeName": "os_smp_boot_topology_negative",
        "expectedMarker": "TURKOS/OS/K2005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki ve dört CPU düğümü ile Duplicate MPIDR veya disabled CPU ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Duplicate MPIDR veya disabled CPU” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2002"
    },
    {
      "id": "K2003",
      "number": 2003,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.topology",
      "stage": "positive",
      "title": "DTB CPU topology · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: MPIDR kimliği logical CPUdan ayrıdır.",
      "action": "os_smp_boot_topology_positive testini oluştur: “İki ve dört CPU düğümü”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "MPIDR kimliği logical CPUdan ayrıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_topology"
      },
      "dependencies": [
        "K2002"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki ve dört CPU düğümü",
      "counterexample": "Duplicate MPIDR veya disabled CPU",
      "guestAcceptance": "Her CPU bir logical slot alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_topology_positive",
        "negativeName": "os_smp_boot_topology_negative",
        "expectedMarker": "TURKOS/OS/K2005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki ve dört CPU düğümü girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Duplicate MPIDR veya disabled CPU” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2003"
    },
    {
      "id": "K2004",
      "number": 2004,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.topology",
      "stage": "negative",
      "title": "DTB CPU topology · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: MPIDR kimliği logical CPUdan ayrıdır.",
      "action": "os_smp_boot_topology_negative testini oluştur: “Duplicate MPIDR veya disabled CPU”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "MPIDR kimliği logical CPUdan ayrıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_topology"
      },
      "dependencies": [
        "K2003"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki ve dört CPU düğümü",
      "counterexample": "Duplicate MPIDR veya disabled CPU",
      "guestAcceptance": "Her CPU bir logical slot alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_topology_positive",
        "negativeName": "os_smp_boot_topology_negative",
        "expectedMarker": "TURKOS/OS/K2005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Duplicate MPIDR veya disabled CPU karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Duplicate MPIDR veya disabled CPU” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2004"
    },
    {
      "id": "K2005",
      "number": 2005,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.topology",
      "stage": "integration",
      "title": "DTB CPU topology · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: MPIDR kimliği logical CPUdan ayrıdır.",
      "action": "Tek ürün Image'ında “Her CPU bir logical slot alır” kabulünü koştur. scripts/os-acceptance/smp_boot.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "MPIDR kimliği logical CPUdan ayrıdır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_topology"
      },
      "dependencies": [
        "K2004"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki ve dört CPU düğümü",
      "counterexample": "Duplicate MPIDR veya disabled CPU",
      "guestAcceptance": "Her CPU bir logical slot alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_topology_positive",
        "negativeName": "os_smp_boot_topology_negative",
        "expectedMarker": "TURKOS/OS/K2005: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her CPU bir logical slot alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Duplicate MPIDR veya disabled CPU” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2005"
    },
    {
      "id": "K2006",
      "number": 2006,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.psci",
      "stage": "contract",
      "title": "PSCI CPUON çağrı sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Conduit ve entry platformdan doğrulanır.",
      "action": "“PSCI CPUON çağrı sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Conduit ve entry platformdan doğrulanır. “Destekli SMC veya HVC conduit” kabulü ile “Eksik PSCI node” reddini aynı sözleşmeye bağla.",
      "invariant": "Conduit ve entry platformdan doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_psci"
      },
      "dependencies": [
        "K2005"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Destekli SMC veya HVC conduit",
      "counterexample": "Eksik PSCI node",
      "guestAcceptance": "Unsupported ret tek CPUyu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_psci_positive",
        "negativeName": "os_smp_boot_psci_negative",
        "expectedMarker": "TURKOS/OS/K2010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Conduit ve entry platformdan doğrulanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eksik PSCI node” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2006"
    },
    {
      "id": "K2007",
      "number": 2007,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.psci",
      "stage": "implementation",
      "title": "PSCI CPUON çağrı sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Conduit ve entry platformdan doğrulanır.",
      "action": "kernel/src/arch/aarch64/smp_boot.rs hedefinde os_smp_boot_psci yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Conduit ve entry platformdan doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_psci"
      },
      "dependencies": [
        "K2006"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Destekli SMC veya HVC conduit",
      "counterexample": "Eksik PSCI node",
      "guestAcceptance": "Unsupported ret tek CPUyu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_psci_positive",
        "negativeName": "os_smp_boot_psci_negative",
        "expectedMarker": "TURKOS/OS/K2010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Destekli SMC veya HVC conduit ile Eksik PSCI node ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eksik PSCI node” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2007"
    },
    {
      "id": "K2008",
      "number": 2008,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.psci",
      "stage": "positive",
      "title": "PSCI CPUON çağrı sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Conduit ve entry platformdan doğrulanır.",
      "action": "os_smp_boot_psci_positive testini oluştur: “Destekli SMC veya HVC conduit”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Conduit ve entry platformdan doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_psci"
      },
      "dependencies": [
        "K2007"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Destekli SMC veya HVC conduit",
      "counterexample": "Eksik PSCI node",
      "guestAcceptance": "Unsupported ret tek CPUyu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_psci_positive",
        "negativeName": "os_smp_boot_psci_negative",
        "expectedMarker": "TURKOS/OS/K2010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Destekli SMC veya HVC conduit girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eksik PSCI node” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2008"
    },
    {
      "id": "K2009",
      "number": 2009,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.psci",
      "stage": "negative",
      "title": "PSCI CPUON çağrı sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Conduit ve entry platformdan doğrulanır.",
      "action": "os_smp_boot_psci_negative testini oluştur: “Eksik PSCI node”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Conduit ve entry platformdan doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_psci"
      },
      "dependencies": [
        "K2008"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Destekli SMC veya HVC conduit",
      "counterexample": "Eksik PSCI node",
      "guestAcceptance": "Unsupported ret tek CPUyu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_psci_positive",
        "negativeName": "os_smp_boot_psci_negative",
        "expectedMarker": "TURKOS/OS/K2010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik PSCI node karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eksik PSCI node” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2009"
    },
    {
      "id": "K2010",
      "number": 2010,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.psci",
      "stage": "integration",
      "title": "PSCI CPUON çağrı sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Conduit ve entry platformdan doğrulanır.",
      "action": "Tek ürün Image'ında “Unsupported ret tek CPUyu korur” kabulünü koştur. scripts/os-acceptance/smp_boot.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Conduit ve entry platformdan doğrulanır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_psci"
      },
      "dependencies": [
        "K2009"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Destekli SMC veya HVC conduit",
      "counterexample": "Eksik PSCI node",
      "guestAcceptance": "Unsupported ret tek CPUyu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_psci_positive",
        "negativeName": "os_smp_boot_psci_negative",
        "expectedMarker": "TURKOS/OS/K2010: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Unsupported ret tek CPUyu korur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eksik PSCI node” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2010"
    },
    {
      "id": "K2011",
      "number": 2011,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.secondary",
      "stage": "contract",
      "title": "İkincil CPU giriş verisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU özel stack ve perCPU alır.",
      "action": "“İkincil CPU giriş verisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her CPU özel stack ve perCPU alır. “İki secondary entry” kabulü ile “Yanlış CPU stack tuple” reddini aynı sözleşmeye bağla.",
      "invariant": "Her CPU özel stack ve perCPU alır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_secondary"
      },
      "dependencies": [
        "K2010"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki secondary entry",
      "counterexample": "Yanlış CPU stack tuple",
      "guestAcceptance": "Boot CPU belleği değişmeden kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_secondary_positive",
        "negativeName": "os_smp_boot_secondary_negative",
        "expectedMarker": "TURKOS/OS/K2015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her CPU özel stack ve perCPU alır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanlış CPU stack tuple” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2011"
    },
    {
      "id": "K2012",
      "number": 2012,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.secondary",
      "stage": "implementation",
      "title": "İkincil CPU giriş verisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU özel stack ve perCPU alır.",
      "action": "kernel/src/arch/aarch64/smp_boot.rs hedefinde os_smp_boot_secondary yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her CPU özel stack ve perCPU alır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_secondary"
      },
      "dependencies": [
        "K2011"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki secondary entry",
      "counterexample": "Yanlış CPU stack tuple",
      "guestAcceptance": "Boot CPU belleği değişmeden kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_secondary_positive",
        "negativeName": "os_smp_boot_secondary_negative",
        "expectedMarker": "TURKOS/OS/K2015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki secondary entry ile Yanlış CPU stack tuple ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanlış CPU stack tuple” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2012"
    },
    {
      "id": "K2013",
      "number": 2013,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.secondary",
      "stage": "positive",
      "title": "İkincil CPU giriş verisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU özel stack ve perCPU alır.",
      "action": "os_smp_boot_secondary_positive testini oluştur: “İki secondary entry”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her CPU özel stack ve perCPU alır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_secondary"
      },
      "dependencies": [
        "K2012"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki secondary entry",
      "counterexample": "Yanlış CPU stack tuple",
      "guestAcceptance": "Boot CPU belleği değişmeden kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_secondary_positive",
        "negativeName": "os_smp_boot_secondary_negative",
        "expectedMarker": "TURKOS/OS/K2015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki secondary entry girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanlış CPU stack tuple” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2013"
    },
    {
      "id": "K2014",
      "number": 2014,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.secondary",
      "stage": "negative",
      "title": "İkincil CPU giriş verisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU özel stack ve perCPU alır.",
      "action": "os_smp_boot_secondary_negative testini oluştur: “Yanlış CPU stack tuple”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her CPU özel stack ve perCPU alır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_secondary"
      },
      "dependencies": [
        "K2013"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki secondary entry",
      "counterexample": "Yanlış CPU stack tuple",
      "guestAcceptance": "Boot CPU belleği değişmeden kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_secondary_positive",
        "negativeName": "os_smp_boot_secondary_negative",
        "expectedMarker": "TURKOS/OS/K2015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış CPU stack tuple karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanlış CPU stack tuple” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2014"
    },
    {
      "id": "K2015",
      "number": 2015,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.secondary",
      "stage": "integration",
      "title": "İkincil CPU giriş verisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU özel stack ve perCPU alır.",
      "action": "Tek ürün Image'ında “Boot CPU belleği değişmeden kalır” kabulünü koştur. scripts/os-acceptance/smp_boot.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her CPU özel stack ve perCPU alır",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_secondary"
      },
      "dependencies": [
        "K2014"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki secondary entry",
      "counterexample": "Yanlış CPU stack tuple",
      "guestAcceptance": "Boot CPU belleği değişmeden kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_secondary_positive",
        "negativeName": "os_smp_boot_secondary_negative",
        "expectedMarker": "TURKOS/OS/K2015: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Boot CPU belleği değişmeden kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanlış CPU stack tuple” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2015"
    },
    {
      "id": "K2016",
      "number": 2016,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.barrier",
      "stage": "contract",
      "title": "SMP başlatma bariyeri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ready olmadan runqueueya iş gelmez.",
      "action": "“SMP başlatma bariyeri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: CPU ready olmadan runqueueya iş gelmez. “Dört CPU aşamalı ready” kabulü ile “Bir CPU timeout” reddini aynı sözleşmeye bağla.",
      "invariant": "CPU ready olmadan runqueueya iş gelmez",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_barrier"
      },
      "dependencies": [
        "K2015"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU aşamalı ready",
      "counterexample": "Bir CPU timeout",
      "guestAcceptance": "Degraded CPU kümesi açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_barrier_positive",
        "negativeName": "os_smp_boot_barrier_negative",
        "expectedMarker": "TURKOS/OS/K2020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu CPU ready olmadan runqueueya iş gelmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir CPU timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2016"
    },
    {
      "id": "K2017",
      "number": 2017,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.barrier",
      "stage": "implementation",
      "title": "SMP başlatma bariyeri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ready olmadan runqueueya iş gelmez.",
      "action": "kernel/src/arch/aarch64/smp_boot.rs hedefinde os_smp_boot_barrier yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "CPU ready olmadan runqueueya iş gelmez",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_barrier"
      },
      "dependencies": [
        "K2016"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU aşamalı ready",
      "counterexample": "Bir CPU timeout",
      "guestAcceptance": "Degraded CPU kümesi açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_barrier_positive",
        "negativeName": "os_smp_boot_barrier_negative",
        "expectedMarker": "TURKOS/OS/K2020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dört CPU aşamalı ready ile Bir CPU timeout ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir CPU timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2017"
    },
    {
      "id": "K2018",
      "number": 2018,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.barrier",
      "stage": "positive",
      "title": "SMP başlatma bariyeri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ready olmadan runqueueya iş gelmez.",
      "action": "os_smp_boot_barrier_positive testini oluştur: “Dört CPU aşamalı ready”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "CPU ready olmadan runqueueya iş gelmez",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_barrier"
      },
      "dependencies": [
        "K2017"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU aşamalı ready",
      "counterexample": "Bir CPU timeout",
      "guestAcceptance": "Degraded CPU kümesi açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_barrier_positive",
        "negativeName": "os_smp_boot_barrier_negative",
        "expectedMarker": "TURKOS/OS/K2020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dört CPU aşamalı ready girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir CPU timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2018"
    },
    {
      "id": "K2019",
      "number": 2019,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.barrier",
      "stage": "negative",
      "title": "SMP başlatma bariyeri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ready olmadan runqueueya iş gelmez.",
      "action": "os_smp_boot_barrier_negative testini oluştur: “Bir CPU timeout”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "CPU ready olmadan runqueueya iş gelmez",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_barrier"
      },
      "dependencies": [
        "K2018"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU aşamalı ready",
      "counterexample": "Bir CPU timeout",
      "guestAcceptance": "Degraded CPU kümesi açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_barrier_positive",
        "negativeName": "os_smp_boot_barrier_negative",
        "expectedMarker": "TURKOS/OS/K2020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir CPU timeout karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir CPU timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2019"
    },
    {
      "id": "K2020",
      "number": 2020,
      "phase": 15,
      "module": "smp_boot",
      "feature": "smp_boot.barrier",
      "stage": "integration",
      "title": "SMP başlatma bariyeri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ready olmadan runqueueya iş gelmez.",
      "action": "Tek ürün Image'ında “Degraded CPU kümesi açık raporlanır” kabulünü koştur. scripts/os-acceptance/smp_boot.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "CPU ready olmadan runqueueya iş gelmez",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_boot.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_boot_barrier"
      },
      "dependencies": [
        "K2019"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU aşamalı ready",
      "counterexample": "Bir CPU timeout",
      "guestAcceptance": "Degraded CPU kümesi açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_boot.rs",
        "harness": "scripts/os-acceptance/smp_boot.mjs",
        "positiveName": "os_smp_boot_barrier_positive",
        "negativeName": "os_smp_boot_barrier_negative",
        "expectedMarker": "TURKOS/OS/K2020: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Degraded CPU kümesi açık raporlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir CPU timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2020"
    },
    {
      "id": "K2021",
      "number": 2021,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.storage",
      "stage": "contract",
      "title": "PerCPU veri alanı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU slotu başka CPU datasını alias etmez.",
      "action": "“PerCPU veri alanı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: CPU slotu başka CPU datasını alias etmez. “Dört sayaç dört backing” kabulü ile “Slot offset overflow” reddini aynı sözleşmeye bağla.",
      "invariant": "CPU slotu başka CPU datasını alias etmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_storage"
      },
      "dependencies": [
        "K2020"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört sayaç dört backing",
      "counterexample": "Slot offset overflow",
      "guestAcceptance": "Yerel sayımlar çapraz bozulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_storage_positive",
        "negativeName": "os_per_cpu_storage_negative",
        "expectedMarker": "TURKOS/OS/K2025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu CPU slotu başka CPU datasını alias etmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Slot offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2021"
    },
    {
      "id": "K2022",
      "number": 2022,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.storage",
      "stage": "implementation",
      "title": "PerCPU veri alanı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU slotu başka CPU datasını alias etmez.",
      "action": "kernel/src/runtime/per_cpu.rs hedefinde os_per_cpu_storage yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "CPU slotu başka CPU datasını alias etmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_storage"
      },
      "dependencies": [
        "K2021"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört sayaç dört backing",
      "counterexample": "Slot offset overflow",
      "guestAcceptance": "Yerel sayımlar çapraz bozulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_storage_positive",
        "negativeName": "os_per_cpu_storage_negative",
        "expectedMarker": "TURKOS/OS/K2025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dört sayaç dört backing ile Slot offset overflow ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Slot offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2022"
    },
    {
      "id": "K2023",
      "number": 2023,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.storage",
      "stage": "positive",
      "title": "PerCPU veri alanı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU slotu başka CPU datasını alias etmez.",
      "action": "os_per_cpu_storage_positive testini oluştur: “Dört sayaç dört backing”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "CPU slotu başka CPU datasını alias etmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_storage"
      },
      "dependencies": [
        "K2022"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört sayaç dört backing",
      "counterexample": "Slot offset overflow",
      "guestAcceptance": "Yerel sayımlar çapraz bozulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_storage_positive",
        "negativeName": "os_per_cpu_storage_negative",
        "expectedMarker": "TURKOS/OS/K2025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dört sayaç dört backing girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Slot offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2023"
    },
    {
      "id": "K2024",
      "number": 2024,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.storage",
      "stage": "negative",
      "title": "PerCPU veri alanı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU slotu başka CPU datasını alias etmez.",
      "action": "os_per_cpu_storage_negative testini oluştur: “Slot offset overflow”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "CPU slotu başka CPU datasını alias etmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_storage"
      },
      "dependencies": [
        "K2023"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört sayaç dört backing",
      "counterexample": "Slot offset overflow",
      "guestAcceptance": "Yerel sayımlar çapraz bozulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_storage_positive",
        "negativeName": "os_per_cpu_storage_negative",
        "expectedMarker": "TURKOS/OS/K2025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Slot offset overflow karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Slot offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2024"
    },
    {
      "id": "K2025",
      "number": 2025,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.storage",
      "stage": "integration",
      "title": "PerCPU veri alanı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU slotu başka CPU datasını alias etmez.",
      "action": "Tek ürün Image'ında “Yerel sayımlar çapraz bozulmaz” kabulünü koştur. scripts/os-acceptance/per_cpu.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "CPU slotu başka CPU datasını alias etmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_storage"
      },
      "dependencies": [
        "K2024"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört sayaç dört backing",
      "counterexample": "Slot offset overflow",
      "guestAcceptance": "Yerel sayımlar çapraz bozulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_storage_positive",
        "negativeName": "os_per_cpu_storage_negative",
        "expectedMarker": "TURKOS/OS/K2025: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yerel sayımlar çapraz bozulmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Slot offset overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2025"
    },
    {
      "id": "K2026",
      "number": 2026,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.vectors",
      "stage": "contract",
      "title": "CPU başına vektör ve IRQ stack · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU exception stacki ayrıdır.",
      "action": "“CPU başına vektör ve IRQ stack” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her CPU exception stacki ayrıdır. “Aynı anda iki timer IRQ” kabulü ile “Secondary boot stack IRQda kullanılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Her CPU exception stacki ayrıdır",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_vectors"
      },
      "dependencies": [
        "K2025"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı anda iki timer IRQ",
      "counterexample": "Secondary boot stack IRQda kullanılır",
      "guestAcceptance": "Kanaryalar bütün CPUlarda aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_vectors_positive",
        "negativeName": "os_per_cpu_vectors_negative",
        "expectedMarker": "TURKOS/OS/K2030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her CPU exception stacki ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Secondary boot stack IRQda kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2026"
    },
    {
      "id": "K2027",
      "number": 2027,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.vectors",
      "stage": "implementation",
      "title": "CPU başına vektör ve IRQ stack · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU exception stacki ayrıdır.",
      "action": "kernel/src/runtime/per_cpu.rs hedefinde os_per_cpu_vectors yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her CPU exception stacki ayrıdır",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_vectors"
      },
      "dependencies": [
        "K2026"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı anda iki timer IRQ",
      "counterexample": "Secondary boot stack IRQda kullanılır",
      "guestAcceptance": "Kanaryalar bütün CPUlarda aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_vectors_positive",
        "negativeName": "os_per_cpu_vectors_negative",
        "expectedMarker": "TURKOS/OS/K2030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı anda iki timer IRQ ile Secondary boot stack IRQda kullanılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Secondary boot stack IRQda kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2027"
    },
    {
      "id": "K2028",
      "number": 2028,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.vectors",
      "stage": "positive",
      "title": "CPU başına vektör ve IRQ stack · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU exception stacki ayrıdır.",
      "action": "os_per_cpu_vectors_positive testini oluştur: “Aynı anda iki timer IRQ”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her CPU exception stacki ayrıdır",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_vectors"
      },
      "dependencies": [
        "K2027"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı anda iki timer IRQ",
      "counterexample": "Secondary boot stack IRQda kullanılır",
      "guestAcceptance": "Kanaryalar bütün CPUlarda aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_vectors_positive",
        "negativeName": "os_per_cpu_vectors_negative",
        "expectedMarker": "TURKOS/OS/K2030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı anda iki timer IRQ girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Secondary boot stack IRQda kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2028"
    },
    {
      "id": "K2029",
      "number": 2029,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.vectors",
      "stage": "negative",
      "title": "CPU başına vektör ve IRQ stack · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU exception stacki ayrıdır.",
      "action": "os_per_cpu_vectors_negative testini oluştur: “Secondary boot stack IRQda kullanılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her CPU exception stacki ayrıdır",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_vectors"
      },
      "dependencies": [
        "K2028"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı anda iki timer IRQ",
      "counterexample": "Secondary boot stack IRQda kullanılır",
      "guestAcceptance": "Kanaryalar bütün CPUlarda aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_vectors_positive",
        "negativeName": "os_per_cpu_vectors_negative",
        "expectedMarker": "TURKOS/OS/K2030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Secondary boot stack IRQda kullanılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Secondary boot stack IRQda kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2029"
    },
    {
      "id": "K2030",
      "number": 2030,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.vectors",
      "stage": "integration",
      "title": "CPU başına vektör ve IRQ stack · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Her CPU exception stacki ayrıdır.",
      "action": "Tek ürün Image'ında “Kanaryalar bütün CPUlarda aynı” kabulünü koştur. scripts/os-acceptance/per_cpu.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her CPU exception stacki ayrıdır",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_vectors"
      },
      "dependencies": [
        "K2029"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı anda iki timer IRQ",
      "counterexample": "Secondary boot stack IRQda kullanılır",
      "guestAcceptance": "Kanaryalar bütün CPUlarda aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_vectors_positive",
        "negativeName": "os_per_cpu_vectors_negative",
        "expectedMarker": "TURKOS/OS/K2030: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kanaryalar bütün CPUlarda aynı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Secondary boot stack IRQda kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2030"
    },
    {
      "id": "K2031",
      "number": 2031,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.timer",
      "stage": "contract",
      "title": "CPU başına timer kaydı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: PPI kurulum ve EOI yerel CPUda olur.",
      "action": "“CPU başına timer kaydı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: PPI kurulum ve EOI yerel CPUda olur. “İki eşzamanlı fiziksel timer” kabulü ile “CPU0 CPU1 timerını kapatır” reddini aynı sözleşmeye bağla.",
      "invariant": "PPI kurulum ve EOI yerel CPUda olur",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_timer"
      },
      "dependencies": [
        "K2030"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki eşzamanlı fiziksel timer",
      "counterexample": "CPU0 CPU1 timerını kapatır",
      "guestAcceptance": "İki CPU bağımsız tick ilerletir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_timer_positive",
        "negativeName": "os_per_cpu_timer_negative",
        "expectedMarker": "TURKOS/OS/K2035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu PPI kurulum ve EOI yerel CPUda olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“CPU0 CPU1 timerını kapatır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2031"
    },
    {
      "id": "K2032",
      "number": 2032,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.timer",
      "stage": "implementation",
      "title": "CPU başına timer kaydı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: PPI kurulum ve EOI yerel CPUda olur.",
      "action": "kernel/src/runtime/per_cpu.rs hedefinde os_per_cpu_timer yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "PPI kurulum ve EOI yerel CPUda olur",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_timer"
      },
      "dependencies": [
        "K2031"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki eşzamanlı fiziksel timer",
      "counterexample": "CPU0 CPU1 timerını kapatır",
      "guestAcceptance": "İki CPU bağımsız tick ilerletir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_timer_positive",
        "negativeName": "os_per_cpu_timer_negative",
        "expectedMarker": "TURKOS/OS/K2035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki eşzamanlı fiziksel timer ile CPU0 CPU1 timerını kapatır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“CPU0 CPU1 timerını kapatır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2032"
    },
    {
      "id": "K2033",
      "number": 2033,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.timer",
      "stage": "positive",
      "title": "CPU başına timer kaydı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: PPI kurulum ve EOI yerel CPUda olur.",
      "action": "os_per_cpu_timer_positive testini oluştur: “İki eşzamanlı fiziksel timer”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "PPI kurulum ve EOI yerel CPUda olur",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_timer"
      },
      "dependencies": [
        "K2032"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki eşzamanlı fiziksel timer",
      "counterexample": "CPU0 CPU1 timerını kapatır",
      "guestAcceptance": "İki CPU bağımsız tick ilerletir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_timer_positive",
        "negativeName": "os_per_cpu_timer_negative",
        "expectedMarker": "TURKOS/OS/K2035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki eşzamanlı fiziksel timer girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“CPU0 CPU1 timerını kapatır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2033"
    },
    {
      "id": "K2034",
      "number": 2034,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.timer",
      "stage": "negative",
      "title": "CPU başına timer kaydı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: PPI kurulum ve EOI yerel CPUda olur.",
      "action": "os_per_cpu_timer_negative testini oluştur: “CPU0 CPU1 timerını kapatır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "PPI kurulum ve EOI yerel CPUda olur",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_timer"
      },
      "dependencies": [
        "K2033"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki eşzamanlı fiziksel timer",
      "counterexample": "CPU0 CPU1 timerını kapatır",
      "guestAcceptance": "İki CPU bağımsız tick ilerletir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_timer_positive",
        "negativeName": "os_per_cpu_timer_negative",
        "expectedMarker": "TURKOS/OS/K2035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "CPU0 CPU1 timerını kapatır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“CPU0 CPU1 timerını kapatır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2034"
    },
    {
      "id": "K2035",
      "number": 2035,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.timer",
      "stage": "integration",
      "title": "CPU başına timer kaydı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: PPI kurulum ve EOI yerel CPUda olur.",
      "action": "Tek ürün Image'ında “İki CPU bağımsız tick ilerletir” kabulünü koştur. scripts/os-acceptance/per_cpu.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "PPI kurulum ve EOI yerel CPUda olur",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_timer"
      },
      "dependencies": [
        "K2034"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki eşzamanlı fiziksel timer",
      "counterexample": "CPU0 CPU1 timerını kapatır",
      "guestAcceptance": "İki CPU bağımsız tick ilerletir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_timer_positive",
        "negativeName": "os_per_cpu_timer_negative",
        "expectedMarker": "TURKOS/OS/K2035: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki CPU bağımsız tick ilerletir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“CPU0 CPU1 timerını kapatır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2035"
    },
    {
      "id": "K2036",
      "number": 2036,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.online",
      "stage": "contract",
      "title": "CPU online offline durumları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Offline CPUya yeni iş yönlenmez.",
      "action": "“CPU online offline durumları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Offline CPUya yeni iş yönlenmez. “Idle CPU kontrollü offline” kabulü ile “Aktif mapping emekliliği eksik” reddini aynı sözleşmeye bağla.",
      "invariant": "Offline CPUya yeni iş yönlenmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_online"
      },
      "dependencies": [
        "K2035"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Idle CPU kontrollü offline",
      "counterexample": "Aktif mapping emekliliği eksik",
      "guestAcceptance": "EBUSY veya tamamlanmış drain",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_online_positive",
        "negativeName": "os_per_cpu_online_negative",
        "expectedMarker": "TURKOS/OS/K2040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Offline CPUya yeni iş yönlenmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Aktif mapping emekliliği eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2036"
    },
    {
      "id": "K2037",
      "number": 2037,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.online",
      "stage": "implementation",
      "title": "CPU online offline durumları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Offline CPUya yeni iş yönlenmez.",
      "action": "kernel/src/runtime/per_cpu.rs hedefinde os_per_cpu_online yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Offline CPUya yeni iş yönlenmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_online"
      },
      "dependencies": [
        "K2036"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Idle CPU kontrollü offline",
      "counterexample": "Aktif mapping emekliliği eksik",
      "guestAcceptance": "EBUSY veya tamamlanmış drain",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_online_positive",
        "negativeName": "os_per_cpu_online_negative",
        "expectedMarker": "TURKOS/OS/K2040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Idle CPU kontrollü offline ile Aktif mapping emekliliği eksik ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Aktif mapping emekliliği eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2037"
    },
    {
      "id": "K2038",
      "number": 2038,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.online",
      "stage": "positive",
      "title": "CPU online offline durumları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Offline CPUya yeni iş yönlenmez.",
      "action": "os_per_cpu_online_positive testini oluştur: “Idle CPU kontrollü offline”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Offline CPUya yeni iş yönlenmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_online"
      },
      "dependencies": [
        "K2037"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Idle CPU kontrollü offline",
      "counterexample": "Aktif mapping emekliliği eksik",
      "guestAcceptance": "EBUSY veya tamamlanmış drain",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_online_positive",
        "negativeName": "os_per_cpu_online_negative",
        "expectedMarker": "TURKOS/OS/K2040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Idle CPU kontrollü offline girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Aktif mapping emekliliği eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2038"
    },
    {
      "id": "K2039",
      "number": 2039,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.online",
      "stage": "negative",
      "title": "CPU online offline durumları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Offline CPUya yeni iş yönlenmez.",
      "action": "os_per_cpu_online_negative testini oluştur: “Aktif mapping emekliliği eksik”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Offline CPUya yeni iş yönlenmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_online"
      },
      "dependencies": [
        "K2038"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Idle CPU kontrollü offline",
      "counterexample": "Aktif mapping emekliliği eksik",
      "guestAcceptance": "EBUSY veya tamamlanmış drain",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_online_positive",
        "negativeName": "os_per_cpu_online_negative",
        "expectedMarker": "TURKOS/OS/K2040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aktif mapping emekliliği eksik karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Aktif mapping emekliliği eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2039"
    },
    {
      "id": "K2040",
      "number": 2040,
      "phase": 15,
      "module": "per_cpu",
      "feature": "per_cpu.online",
      "stage": "integration",
      "title": "CPU online offline durumları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Offline CPUya yeni iş yönlenmez.",
      "action": "Tek ürün Image'ında “EBUSY veya tamamlanmış drain” kabulünü koştur. scripts/os-acceptance/per_cpu.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Offline CPUya yeni iş yönlenmez",
      "source": {
        "target": "kernel/src/runtime/per_cpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_per_cpu_online"
      },
      "dependencies": [
        "K2039"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Idle CPU kontrollü offline",
      "counterexample": "Aktif mapping emekliliği eksik",
      "guestAcceptance": "EBUSY veya tamamlanmış drain",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/per_cpu.rs",
        "harness": "scripts/os-acceptance/per_cpu.mjs",
        "positiveName": "os_per_cpu_online_positive",
        "negativeName": "os_per_cpu_online_negative",
        "expectedMarker": "TURKOS/OS/K2040: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EBUSY veya tamamlanmış drain; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Aktif mapping emekliliği eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2040"
    },
    {
      "id": "K2041",
      "number": 2041,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.queues",
      "stage": "contract",
      "title": "CPU başına runqueue · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Thread aynı anda iki CPUda Running olmaz.",
      "action": "“CPU başına runqueue” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Thread aynı anda iki CPUda Running olmaz. “İki CPU bir Ready thread” kabulü ile “İki eşzamanlı claim” reddini aynı sözleşmeye bağla.",
      "invariant": "Thread aynı anda iki CPUda Running olmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_queues"
      },
      "dependencies": [
        "K2040"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bir Ready thread",
      "counterexample": "İki eşzamanlı claim",
      "guestAcceptance": "Tek claim ve tek runnable sahibi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_queues_positive",
        "negativeName": "os_smp_scheduler_queues_negative",
        "expectedMarker": "TURKOS/OS/K2045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Thread aynı anda iki CPUda Running olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki eşzamanlı claim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2041"
    },
    {
      "id": "K2042",
      "number": 2042,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.queues",
      "stage": "implementation",
      "title": "CPU başına runqueue · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Thread aynı anda iki CPUda Running olmaz.",
      "action": "kernel/src/runtime/smp_scheduler.rs hedefinde os_smp_scheduler_queues yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Thread aynı anda iki CPUda Running olmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_queues"
      },
      "dependencies": [
        "K2041"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bir Ready thread",
      "counterexample": "İki eşzamanlı claim",
      "guestAcceptance": "Tek claim ve tek runnable sahibi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_queues_positive",
        "negativeName": "os_smp_scheduler_queues_negative",
        "expectedMarker": "TURKOS/OS/K2045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki CPU bir Ready thread ile İki eşzamanlı claim ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki eşzamanlı claim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2042"
    },
    {
      "id": "K2043",
      "number": 2043,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.queues",
      "stage": "positive",
      "title": "CPU başına runqueue · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Thread aynı anda iki CPUda Running olmaz.",
      "action": "os_smp_scheduler_queues_positive testini oluştur: “İki CPU bir Ready thread”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Thread aynı anda iki CPUda Running olmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_queues"
      },
      "dependencies": [
        "K2042"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bir Ready thread",
      "counterexample": "İki eşzamanlı claim",
      "guestAcceptance": "Tek claim ve tek runnable sahibi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_queues_positive",
        "negativeName": "os_smp_scheduler_queues_negative",
        "expectedMarker": "TURKOS/OS/K2045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki CPU bir Ready thread girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki eşzamanlı claim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2043"
    },
    {
      "id": "K2044",
      "number": 2044,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.queues",
      "stage": "negative",
      "title": "CPU başına runqueue · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Thread aynı anda iki CPUda Running olmaz.",
      "action": "os_smp_scheduler_queues_negative testini oluştur: “İki eşzamanlı claim”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Thread aynı anda iki CPUda Running olmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_queues"
      },
      "dependencies": [
        "K2043"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bir Ready thread",
      "counterexample": "İki eşzamanlı claim",
      "guestAcceptance": "Tek claim ve tek runnable sahibi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_queues_positive",
        "negativeName": "os_smp_scheduler_queues_negative",
        "expectedMarker": "TURKOS/OS/K2045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki eşzamanlı claim karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki eşzamanlı claim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2044"
    },
    {
      "id": "K2045",
      "number": 2045,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.queues",
      "stage": "integration",
      "title": "CPU başına runqueue · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Thread aynı anda iki CPUda Running olmaz.",
      "action": "Tek ürün Image'ında “Tek claim ve tek runnable sahibi” kabulünü koştur. scripts/os-acceptance/smp_scheduler.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Thread aynı anda iki CPUda Running olmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_queues"
      },
      "dependencies": [
        "K2044"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bir Ready thread",
      "counterexample": "İki eşzamanlı claim",
      "guestAcceptance": "Tek claim ve tek runnable sahibi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_queues_positive",
        "negativeName": "os_smp_scheduler_queues_negative",
        "expectedMarker": "TURKOS/OS/K2045: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek claim ve tek runnable sahibi; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki eşzamanlı claim” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2045"
    },
    {
      "id": "K2046",
      "number": 2046,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.ipi_wake",
      "stage": "contract",
      "title": "SGI ile uzak wake · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: IPI target mask logical CPUya bağlıdır.",
      "action": "“SGI ile uzak wake” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: IPI target mask logical CPUya bağlıdır. “CPU0 CPU1 waiteri uyandırır” kabulü ile “Offline CPUya SGI” reddini aynı sözleşmeye bağla.",
      "invariant": "IPI target mask logical CPUya bağlıdır",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_ipi_wake"
      },
      "dependencies": [
        "K2045"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "CPU0 CPU1 waiteri uyandırır",
      "counterexample": "Offline CPUya SGI",
      "guestAcceptance": "Wake kaybolmaz veya explicit offline",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_ipi_wake_positive",
        "negativeName": "os_smp_scheduler_ipi_wake_negative",
        "expectedMarker": "TURKOS/OS/K2050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu IPI target mask logical CPUya bağlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Offline CPUya SGI” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2046"
    },
    {
      "id": "K2047",
      "number": 2047,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.ipi_wake",
      "stage": "implementation",
      "title": "SGI ile uzak wake · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: IPI target mask logical CPUya bağlıdır.",
      "action": "kernel/src/runtime/smp_scheduler.rs hedefinde os_smp_scheduler_ipi_wake yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "IPI target mask logical CPUya bağlıdır",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_ipi_wake"
      },
      "dependencies": [
        "K2046"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "CPU0 CPU1 waiteri uyandırır",
      "counterexample": "Offline CPUya SGI",
      "guestAcceptance": "Wake kaybolmaz veya explicit offline",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_ipi_wake_positive",
        "negativeName": "os_smp_scheduler_ipi_wake_negative",
        "expectedMarker": "TURKOS/OS/K2050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. CPU0 CPU1 waiteri uyandırır ile Offline CPUya SGI ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Offline CPUya SGI” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2047"
    },
    {
      "id": "K2048",
      "number": 2048,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.ipi_wake",
      "stage": "positive",
      "title": "SGI ile uzak wake · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: IPI target mask logical CPUya bağlıdır.",
      "action": "os_smp_scheduler_ipi_wake_positive testini oluştur: “CPU0 CPU1 waiteri uyandırır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "IPI target mask logical CPUya bağlıdır",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_ipi_wake"
      },
      "dependencies": [
        "K2047"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "CPU0 CPU1 waiteri uyandırır",
      "counterexample": "Offline CPUya SGI",
      "guestAcceptance": "Wake kaybolmaz veya explicit offline",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_ipi_wake_positive",
        "negativeName": "os_smp_scheduler_ipi_wake_negative",
        "expectedMarker": "TURKOS/OS/K2050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; CPU0 CPU1 waiteri uyandırır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Offline CPUya SGI” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2048"
    },
    {
      "id": "K2049",
      "number": 2049,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.ipi_wake",
      "stage": "negative",
      "title": "SGI ile uzak wake · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: IPI target mask logical CPUya bağlıdır.",
      "action": "os_smp_scheduler_ipi_wake_negative testini oluştur: “Offline CPUya SGI”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "IPI target mask logical CPUya bağlıdır",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_ipi_wake"
      },
      "dependencies": [
        "K2048"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "CPU0 CPU1 waiteri uyandırır",
      "counterexample": "Offline CPUya SGI",
      "guestAcceptance": "Wake kaybolmaz veya explicit offline",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_ipi_wake_positive",
        "negativeName": "os_smp_scheduler_ipi_wake_negative",
        "expectedMarker": "TURKOS/OS/K2050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Offline CPUya SGI karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Offline CPUya SGI” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2049"
    },
    {
      "id": "K2050",
      "number": 2050,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.ipi_wake",
      "stage": "integration",
      "title": "SGI ile uzak wake · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: IPI target mask logical CPUya bağlıdır.",
      "action": "Tek ürün Image'ında “Wake kaybolmaz veya explicit offline” kabulünü koştur. scripts/os-acceptance/smp_scheduler.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "IPI target mask logical CPUya bağlıdır",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_ipi_wake"
      },
      "dependencies": [
        "K2049"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "CPU0 CPU1 waiteri uyandırır",
      "counterexample": "Offline CPUya SGI",
      "guestAcceptance": "Wake kaybolmaz veya explicit offline",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_ipi_wake_positive",
        "negativeName": "os_smp_scheduler_ipi_wake_negative",
        "expectedMarker": "TURKOS/OS/K2050: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Wake kaybolmaz veya explicit offline; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Offline CPUya SGI” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2050"
    },
    {
      "id": "K2051",
      "number": 2051,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.migration",
      "stage": "contract",
      "title": "Thread güvenli CPU göçü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Göç aktif stack üzerinde yapılmaz.",
      "action": "“Thread güvenli CPU göçü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Göç aktif stack üzerinde yapılmaz. “A bir CPUdan diğerine taşınır” kabulü ile “Running thread anında taşınır” reddini aynı sözleşmeye bağla.",
      "invariant": "Göç aktif stack üzerinde yapılmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_migration"
      },
      "dependencies": [
        "K2050"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "A bir CPUdan diğerine taşınır",
      "counterexample": "Running thread anında taşınır",
      "guestAcceptance": "Tanıklar ve thread kimliği korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_migration_positive",
        "negativeName": "os_smp_scheduler_migration_negative",
        "expectedMarker": "TURKOS/OS/K2055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Göç aktif stack üzerinde yapılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Running thread anında taşınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2051"
    },
    {
      "id": "K2052",
      "number": 2052,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.migration",
      "stage": "implementation",
      "title": "Thread güvenli CPU göçü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Göç aktif stack üzerinde yapılmaz.",
      "action": "kernel/src/runtime/smp_scheduler.rs hedefinde os_smp_scheduler_migration yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Göç aktif stack üzerinde yapılmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_migration"
      },
      "dependencies": [
        "K2051"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "A bir CPUdan diğerine taşınır",
      "counterexample": "Running thread anında taşınır",
      "guestAcceptance": "Tanıklar ve thread kimliği korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_migration_positive",
        "negativeName": "os_smp_scheduler_migration_negative",
        "expectedMarker": "TURKOS/OS/K2055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. A bir CPUdan diğerine taşınır ile Running thread anında taşınır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Running thread anında taşınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2052"
    },
    {
      "id": "K2053",
      "number": 2053,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.migration",
      "stage": "positive",
      "title": "Thread güvenli CPU göçü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Göç aktif stack üzerinde yapılmaz.",
      "action": "os_smp_scheduler_migration_positive testini oluştur: “A bir CPUdan diğerine taşınır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Göç aktif stack üzerinde yapılmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_migration"
      },
      "dependencies": [
        "K2052"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "A bir CPUdan diğerine taşınır",
      "counterexample": "Running thread anında taşınır",
      "guestAcceptance": "Tanıklar ve thread kimliği korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_migration_positive",
        "negativeName": "os_smp_scheduler_migration_negative",
        "expectedMarker": "TURKOS/OS/K2055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; A bir CPUdan diğerine taşınır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Running thread anında taşınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2053"
    },
    {
      "id": "K2054",
      "number": 2054,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.migration",
      "stage": "negative",
      "title": "Thread güvenli CPU göçü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Göç aktif stack üzerinde yapılmaz.",
      "action": "os_smp_scheduler_migration_negative testini oluştur: “Running thread anında taşınır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Göç aktif stack üzerinde yapılmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_migration"
      },
      "dependencies": [
        "K2053"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "A bir CPUdan diğerine taşınır",
      "counterexample": "Running thread anında taşınır",
      "guestAcceptance": "Tanıklar ve thread kimliği korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_migration_positive",
        "negativeName": "os_smp_scheduler_migration_negative",
        "expectedMarker": "TURKOS/OS/K2055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Running thread anında taşınır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Running thread anında taşınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2054"
    },
    {
      "id": "K2055",
      "number": 2055,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.migration",
      "stage": "integration",
      "title": "Thread güvenli CPU göçü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Göç aktif stack üzerinde yapılmaz.",
      "action": "Tek ürün Image'ında “Tanıklar ve thread kimliği korunur” kabulünü koştur. scripts/os-acceptance/smp_scheduler.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Göç aktif stack üzerinde yapılmaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_migration"
      },
      "dependencies": [
        "K2054"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "A bir CPUdan diğerine taşınır",
      "counterexample": "Running thread anında taşınır",
      "guestAcceptance": "Tanıklar ve thread kimliği korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_migration_positive",
        "negativeName": "os_smp_scheduler_migration_negative",
        "expectedMarker": "TURKOS/OS/K2055: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tanıklar ve thread kimliği korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Running thread anında taşınır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2055"
    },
    {
      "id": "K2056",
      "number": 2056,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.affinity",
      "stage": "contract",
      "title": "CPU affinity ve yük dengeleme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Affinity dışı CPU threadi çalıştıramaz.",
      "action": "“CPU affinity ve yük dengeleme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Affinity dışı CPU threadi çalıştıramaz. “İki görev ayrı maskeler” kabulü ile “Boş affinity mask” reddini aynı sözleşmeye bağla.",
      "invariant": "Affinity dışı CPU threadi çalıştıramaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_affinity"
      },
      "dependencies": [
        "K2055"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki görev ayrı maskeler",
      "counterexample": "Boş affinity mask",
      "guestAcceptance": "Ret sonrası eski atama devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_affinity_positive",
        "negativeName": "os_smp_scheduler_affinity_negative",
        "expectedMarker": "TURKOS/OS/K2060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Affinity dışı CPU threadi çalıştıramaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Boş affinity mask” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2056"
    },
    {
      "id": "K2057",
      "number": 2057,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.affinity",
      "stage": "implementation",
      "title": "CPU affinity ve yük dengeleme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Affinity dışı CPU threadi çalıştıramaz.",
      "action": "kernel/src/runtime/smp_scheduler.rs hedefinde os_smp_scheduler_affinity yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Affinity dışı CPU threadi çalıştıramaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_affinity"
      },
      "dependencies": [
        "K2056"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki görev ayrı maskeler",
      "counterexample": "Boş affinity mask",
      "guestAcceptance": "Ret sonrası eski atama devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_affinity_positive",
        "negativeName": "os_smp_scheduler_affinity_negative",
        "expectedMarker": "TURKOS/OS/K2060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki görev ayrı maskeler ile Boş affinity mask ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Boş affinity mask” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2057"
    },
    {
      "id": "K2058",
      "number": 2058,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.affinity",
      "stage": "positive",
      "title": "CPU affinity ve yük dengeleme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Affinity dışı CPU threadi çalıştıramaz.",
      "action": "os_smp_scheduler_affinity_positive testini oluştur: “İki görev ayrı maskeler”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Affinity dışı CPU threadi çalıştıramaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_affinity"
      },
      "dependencies": [
        "K2057"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki görev ayrı maskeler",
      "counterexample": "Boş affinity mask",
      "guestAcceptance": "Ret sonrası eski atama devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_affinity_positive",
        "negativeName": "os_smp_scheduler_affinity_negative",
        "expectedMarker": "TURKOS/OS/K2060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki görev ayrı maskeler girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Boş affinity mask” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2058"
    },
    {
      "id": "K2059",
      "number": 2059,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.affinity",
      "stage": "negative",
      "title": "CPU affinity ve yük dengeleme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Affinity dışı CPU threadi çalıştıramaz.",
      "action": "os_smp_scheduler_affinity_negative testini oluştur: “Boş affinity mask”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Affinity dışı CPU threadi çalıştıramaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_affinity"
      },
      "dependencies": [
        "K2058"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki görev ayrı maskeler",
      "counterexample": "Boş affinity mask",
      "guestAcceptance": "Ret sonrası eski atama devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_affinity_positive",
        "negativeName": "os_smp_scheduler_affinity_negative",
        "expectedMarker": "TURKOS/OS/K2060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Boş affinity mask karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Boş affinity mask” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2059"
    },
    {
      "id": "K2060",
      "number": 2060,
      "phase": 15,
      "module": "smp_scheduler",
      "feature": "smp_scheduler.affinity",
      "stage": "integration",
      "title": "CPU affinity ve yük dengeleme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Affinity dışı CPU threadi çalıştıramaz.",
      "action": "Tek ürün Image'ında “Ret sonrası eski atama devam” kabulünü koştur. scripts/os-acceptance/smp_scheduler.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Affinity dışı CPU threadi çalıştıramaz",
      "source": {
        "target": "kernel/src/runtime/smp_scheduler.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_smp_scheduler_affinity"
      },
      "dependencies": [
        "K2059"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki görev ayrı maskeler",
      "counterexample": "Boş affinity mask",
      "guestAcceptance": "Ret sonrası eski atama devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_scheduler.rs",
        "harness": "scripts/os-acceptance/smp_scheduler.mjs",
        "positiveName": "os_smp_scheduler_affinity_positive",
        "negativeName": "os_smp_scheduler_affinity_negative",
        "expectedMarker": "TURKOS/OS/K2060: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sonrası eski atama devam; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Boş affinity mask” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2060"
    },
    {
      "id": "K2061",
      "number": 2061,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.shootdown",
      "stage": "contract",
      "title": "Uzak CPU TLB shootdown · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Free bütün etkin CPU acklerini bekler.",
      "action": "“Uzak CPU TLB shootdown” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Free bütün etkin CPU acklerini bekler. “Aynı space iki CPUda” kabulü ile “Eksik secondary ack” reddini aynı sözleşmeye bağla.",
      "invariant": "Free bütün etkin CPU acklerini bekler",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_shootdown"
      },
      "dependencies": [
        "K2060"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı space iki CPUda",
      "counterexample": "Eksik secondary ack",
      "guestAcceptance": "Backing iade edilmeyip quarantine olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_shootdown_positive",
        "negativeName": "os_smp_memory_shootdown_negative",
        "expectedMarker": "TURKOS/OS/K2065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Free bütün etkin CPU acklerini bekler kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eksik secondary ack” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2061"
    },
    {
      "id": "K2062",
      "number": 2062,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.shootdown",
      "stage": "implementation",
      "title": "Uzak CPU TLB shootdown · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Free bütün etkin CPU acklerini bekler.",
      "action": "kernel/src/arch/aarch64/smp_memory.rs hedefinde os_smp_memory_shootdown yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/asid.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Free bütün etkin CPU acklerini bekler",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_shootdown"
      },
      "dependencies": [
        "K2061"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı space iki CPUda",
      "counterexample": "Eksik secondary ack",
      "guestAcceptance": "Backing iade edilmeyip quarantine olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_shootdown_positive",
        "negativeName": "os_smp_memory_shootdown_negative",
        "expectedMarker": "TURKOS/OS/K2065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı space iki CPUda ile Eksik secondary ack ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eksik secondary ack” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2062"
    },
    {
      "id": "K2063",
      "number": 2063,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.shootdown",
      "stage": "positive",
      "title": "Uzak CPU TLB shootdown · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Free bütün etkin CPU acklerini bekler.",
      "action": "os_smp_memory_shootdown_positive testini oluştur: “Aynı space iki CPUda”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Free bütün etkin CPU acklerini bekler",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_shootdown"
      },
      "dependencies": [
        "K2062"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı space iki CPUda",
      "counterexample": "Eksik secondary ack",
      "guestAcceptance": "Backing iade edilmeyip quarantine olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_shootdown_positive",
        "negativeName": "os_smp_memory_shootdown_negative",
        "expectedMarker": "TURKOS/OS/K2065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı space iki CPUda girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eksik secondary ack” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2063"
    },
    {
      "id": "K2064",
      "number": 2064,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.shootdown",
      "stage": "negative",
      "title": "Uzak CPU TLB shootdown · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Free bütün etkin CPU acklerini bekler.",
      "action": "os_smp_memory_shootdown_negative testini oluştur: “Eksik secondary ack”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Free bütün etkin CPU acklerini bekler",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_shootdown"
      },
      "dependencies": [
        "K2063"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı space iki CPUda",
      "counterexample": "Eksik secondary ack",
      "guestAcceptance": "Backing iade edilmeyip quarantine olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_shootdown_positive",
        "negativeName": "os_smp_memory_shootdown_negative",
        "expectedMarker": "TURKOS/OS/K2065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik secondary ack karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eksik secondary ack” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2064"
    },
    {
      "id": "K2065",
      "number": 2065,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.shootdown",
      "stage": "integration",
      "title": "Uzak CPU TLB shootdown · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Free bütün etkin CPU acklerini bekler.",
      "action": "Tek ürün Image'ında “Backing iade edilmeyip quarantine olur” kabulünü koştur. scripts/os-acceptance/smp_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Free bütün etkin CPU acklerini bekler",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_shootdown"
      },
      "dependencies": [
        "K2064"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Aynı space iki CPUda",
      "counterexample": "Eksik secondary ack",
      "guestAcceptance": "Backing iade edilmeyip quarantine olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_shootdown_positive",
        "negativeName": "os_smp_memory_shootdown_negative",
        "expectedMarker": "TURKOS/OS/K2065: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Backing iade edilmeyip quarantine olur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eksik secondary ack” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2065"
    },
    {
      "id": "K2066",
      "number": 2066,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.asid_epoch",
      "stage": "contract",
      "title": "SMP ASID nesil bariyeri · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Nesil global emeklilikten önce reuse olmaz.",
      "action": "“SMP ASID nesil bariyeri” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Nesil global emeklilikten önce reuse olmaz. “Küçük ASID havuzu” kabulü ile “Eski CPU epoch ile erişir” reddini aynı sözleşmeye bağla.",
      "invariant": "Nesil global emeklilikten önce reuse olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_asid_epoch"
      },
      "dependencies": [
        "K2065"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Küçük ASID havuzu",
      "counterexample": "Eski CPU epoch ile erişir",
      "guestAcceptance": "Yeni süreç stale translation görmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_asid_epoch_positive",
        "negativeName": "os_smp_memory_asid_epoch_negative",
        "expectedMarker": "TURKOS/OS/K2070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Nesil global emeklilikten önce reuse olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski CPU epoch ile erişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2066"
    },
    {
      "id": "K2067",
      "number": 2067,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.asid_epoch",
      "stage": "implementation",
      "title": "SMP ASID nesil bariyeri · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Nesil global emeklilikten önce reuse olmaz.",
      "action": "kernel/src/arch/aarch64/smp_memory.rs hedefinde os_smp_memory_asid_epoch yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/asid.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Nesil global emeklilikten önce reuse olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_asid_epoch"
      },
      "dependencies": [
        "K2066"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Küçük ASID havuzu",
      "counterexample": "Eski CPU epoch ile erişir",
      "guestAcceptance": "Yeni süreç stale translation görmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_asid_epoch_positive",
        "negativeName": "os_smp_memory_asid_epoch_negative",
        "expectedMarker": "TURKOS/OS/K2070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Küçük ASID havuzu ile Eski CPU epoch ile erişir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski CPU epoch ile erişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2067"
    },
    {
      "id": "K2068",
      "number": 2068,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.asid_epoch",
      "stage": "positive",
      "title": "SMP ASID nesil bariyeri · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Nesil global emeklilikten önce reuse olmaz.",
      "action": "os_smp_memory_asid_epoch_positive testini oluştur: “Küçük ASID havuzu”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Nesil global emeklilikten önce reuse olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_asid_epoch"
      },
      "dependencies": [
        "K2067"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Küçük ASID havuzu",
      "counterexample": "Eski CPU epoch ile erişir",
      "guestAcceptance": "Yeni süreç stale translation görmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_asid_epoch_positive",
        "negativeName": "os_smp_memory_asid_epoch_negative",
        "expectedMarker": "TURKOS/OS/K2070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Küçük ASID havuzu girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski CPU epoch ile erişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2068"
    },
    {
      "id": "K2069",
      "number": 2069,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.asid_epoch",
      "stage": "negative",
      "title": "SMP ASID nesil bariyeri · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Nesil global emeklilikten önce reuse olmaz.",
      "action": "os_smp_memory_asid_epoch_negative testini oluştur: “Eski CPU epoch ile erişir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Nesil global emeklilikten önce reuse olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_asid_epoch"
      },
      "dependencies": [
        "K2068"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Küçük ASID havuzu",
      "counterexample": "Eski CPU epoch ile erişir",
      "guestAcceptance": "Yeni süreç stale translation görmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_asid_epoch_positive",
        "negativeName": "os_smp_memory_asid_epoch_negative",
        "expectedMarker": "TURKOS/OS/K2070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski CPU epoch ile erişir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski CPU epoch ile erişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2069"
    },
    {
      "id": "K2070",
      "number": 2070,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.asid_epoch",
      "stage": "integration",
      "title": "SMP ASID nesil bariyeri · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Nesil global emeklilikten önce reuse olmaz.",
      "action": "Tek ürün Image'ında “Yeni süreç stale translation görmez” kabulünü koştur. scripts/os-acceptance/smp_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Nesil global emeklilikten önce reuse olmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_asid_epoch"
      },
      "dependencies": [
        "K2069"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Küçük ASID havuzu",
      "counterexample": "Eski CPU epoch ile erişir",
      "guestAcceptance": "Yeni süreç stale translation görmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_asid_epoch_positive",
        "negativeName": "os_smp_memory_asid_epoch_negative",
        "expectedMarker": "TURKOS/OS/K2070: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni süreç stale translation görmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski CPU epoch ile erişir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2070"
    },
    {
      "id": "K2071",
      "number": 2071,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.allocator",
      "stage": "contract",
      "title": "SMP frame allocator hizmeti · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Gerçek eşzamanlı tahsis tek sahip verir.",
      "action": "“SMP frame allocator hizmeti” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Gerçek eşzamanlı tahsis tek sahip verir. “İki CPU bin tahsis iade” kabulü ile “Kilit recursion veya çift free” reddini aynı sözleşmeye bağla.",
      "invariant": "Gerçek eşzamanlı tahsis tek sahip verir",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_allocator"
      },
      "dependencies": [
        "K2070"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bin tahsis iade",
      "counterexample": "Kilit recursion veya çift free",
      "guestAcceptance": "Frame toplamı ve owner listesi eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_allocator_positive",
        "negativeName": "os_smp_memory_allocator_negative",
        "expectedMarker": "TURKOS/OS/K2075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Gerçek eşzamanlı tahsis tek sahip verir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kilit recursion veya çift free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2071"
    },
    {
      "id": "K2072",
      "number": 2072,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.allocator",
      "stage": "implementation",
      "title": "SMP frame allocator hizmeti · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Gerçek eşzamanlı tahsis tek sahip verir.",
      "action": "kernel/src/arch/aarch64/smp_memory.rs hedefinde os_smp_memory_allocator yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/asid.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Gerçek eşzamanlı tahsis tek sahip verir",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_allocator"
      },
      "dependencies": [
        "K2071"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bin tahsis iade",
      "counterexample": "Kilit recursion veya çift free",
      "guestAcceptance": "Frame toplamı ve owner listesi eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_allocator_positive",
        "negativeName": "os_smp_memory_allocator_negative",
        "expectedMarker": "TURKOS/OS/K2075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki CPU bin tahsis iade ile Kilit recursion veya çift free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kilit recursion veya çift free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2072"
    },
    {
      "id": "K2073",
      "number": 2073,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.allocator",
      "stage": "positive",
      "title": "SMP frame allocator hizmeti · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Gerçek eşzamanlı tahsis tek sahip verir.",
      "action": "os_smp_memory_allocator_positive testini oluştur: “İki CPU bin tahsis iade”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Gerçek eşzamanlı tahsis tek sahip verir",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_allocator"
      },
      "dependencies": [
        "K2072"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bin tahsis iade",
      "counterexample": "Kilit recursion veya çift free",
      "guestAcceptance": "Frame toplamı ve owner listesi eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_allocator_positive",
        "negativeName": "os_smp_memory_allocator_negative",
        "expectedMarker": "TURKOS/OS/K2075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki CPU bin tahsis iade girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kilit recursion veya çift free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2073"
    },
    {
      "id": "K2074",
      "number": 2074,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.allocator",
      "stage": "negative",
      "title": "SMP frame allocator hizmeti · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Gerçek eşzamanlı tahsis tek sahip verir.",
      "action": "os_smp_memory_allocator_negative testini oluştur: “Kilit recursion veya çift free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Gerçek eşzamanlı tahsis tek sahip verir",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_allocator"
      },
      "dependencies": [
        "K2073"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bin tahsis iade",
      "counterexample": "Kilit recursion veya çift free",
      "guestAcceptance": "Frame toplamı ve owner listesi eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_allocator_positive",
        "negativeName": "os_smp_memory_allocator_negative",
        "expectedMarker": "TURKOS/OS/K2075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kilit recursion veya çift free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kilit recursion veya çift free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2074"
    },
    {
      "id": "K2075",
      "number": 2075,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.allocator",
      "stage": "integration",
      "title": "SMP frame allocator hizmeti · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Gerçek eşzamanlı tahsis tek sahip verir.",
      "action": "Tek ürün Image'ında “Frame toplamı ve owner listesi eşit” kabulünü koştur. scripts/os-acceptance/smp_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Gerçek eşzamanlı tahsis tek sahip verir",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_allocator"
      },
      "dependencies": [
        "K2074"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU bin tahsis iade",
      "counterexample": "Kilit recursion veya çift free",
      "guestAcceptance": "Frame toplamı ve owner listesi eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_allocator_positive",
        "negativeName": "os_smp_memory_allocator_negative",
        "expectedMarker": "TURKOS/OS/K2075: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Frame toplamı ve owner listesi eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kilit recursion veya çift free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2075"
    },
    {
      "id": "K2076",
      "number": 2076,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.publication",
      "stage": "contract",
      "title": "Acquire release yayın kanıtı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Payload sequence yayınından önce görünür.",
      "action": "“Acquire release yayın kanıtı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Payload sequence yayınından önce görünür. “İki CPU artan payloadlar” kabulü ile “Eksik release veya çift publisher” reddini aynı sözleşmeye bağla.",
      "invariant": "Payload sequence yayınından önce görünür",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_publication"
      },
      "dependencies": [
        "K2075"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU artan payloadlar",
      "counterexample": "Eksik release veya çift publisher",
      "guestAcceptance": "Alıcı sıra ve byte hashini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_publication_positive",
        "negativeName": "os_smp_memory_publication_negative",
        "expectedMarker": "TURKOS/OS/K2080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Payload sequence yayınından önce görünür kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eksik release veya çift publisher” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2076"
    },
    {
      "id": "K2077",
      "number": 2077,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.publication",
      "stage": "implementation",
      "title": "Acquire release yayın kanıtı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Payload sequence yayınından önce görünür.",
      "action": "kernel/src/arch/aarch64/smp_memory.rs hedefinde os_smp_memory_publication yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/asid.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Payload sequence yayınından önce görünür",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_publication"
      },
      "dependencies": [
        "K2076"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU artan payloadlar",
      "counterexample": "Eksik release veya çift publisher",
      "guestAcceptance": "Alıcı sıra ve byte hashini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_publication_positive",
        "negativeName": "os_smp_memory_publication_negative",
        "expectedMarker": "TURKOS/OS/K2080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki CPU artan payloadlar ile Eksik release veya çift publisher ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eksik release veya çift publisher” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2077"
    },
    {
      "id": "K2078",
      "number": 2078,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.publication",
      "stage": "positive",
      "title": "Acquire release yayın kanıtı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Payload sequence yayınından önce görünür.",
      "action": "os_smp_memory_publication_positive testini oluştur: “İki CPU artan payloadlar”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Payload sequence yayınından önce görünür",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_publication"
      },
      "dependencies": [
        "K2077"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU artan payloadlar",
      "counterexample": "Eksik release veya çift publisher",
      "guestAcceptance": "Alıcı sıra ve byte hashini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_publication_positive",
        "negativeName": "os_smp_memory_publication_negative",
        "expectedMarker": "TURKOS/OS/K2080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki CPU artan payloadlar girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eksik release veya çift publisher” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2078"
    },
    {
      "id": "K2079",
      "number": 2079,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.publication",
      "stage": "negative",
      "title": "Acquire release yayın kanıtı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Payload sequence yayınından önce görünür.",
      "action": "os_smp_memory_publication_negative testini oluştur: “Eksik release veya çift publisher”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Payload sequence yayınından önce görünür",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_publication"
      },
      "dependencies": [
        "K2078"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU artan payloadlar",
      "counterexample": "Eksik release veya çift publisher",
      "guestAcceptance": "Alıcı sıra ve byte hashini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_publication_positive",
        "negativeName": "os_smp_memory_publication_negative",
        "expectedMarker": "TURKOS/OS/K2080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik release veya çift publisher karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eksik release veya çift publisher” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2079"
    },
    {
      "id": "K2080",
      "number": 2080,
      "phase": 15,
      "module": "smp_memory",
      "feature": "smp_memory.publication",
      "stage": "integration",
      "title": "Acquire release yayın kanıtı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Payload sequence yayınından önce görünür.",
      "action": "Tek ürün Image'ında “Alıcı sıra ve byte hashini doğrular” kabulünü koştur. scripts/os-acceptance/smp_memory.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Payload sequence yayınından önce görünür",
      "source": {
        "target": "kernel/src/arch/aarch64/smp_memory.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/asid.rs",
        "existingReferenceSha256": "c312f7c5f7bef78c60e4208dd88b9e69ab90330e119326fd2b924627d60e2daf",
        "symbol": "os_smp_memory_publication"
      },
      "dependencies": [
        "K2079"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "İki CPU artan payloadlar",
      "counterexample": "Eksik release veya çift publisher",
      "guestAcceptance": "Alıcı sıra ve byte hashini doğrular",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_memory.rs",
        "harness": "scripts/os-acceptance/smp_memory.mjs",
        "positiveName": "os_smp_memory_publication_positive",
        "negativeName": "os_smp_memory_publication_negative",
        "expectedMarker": "TURKOS/OS/K2080: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Alıcı sıra ve byte hashini doğrular; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eksik release veya çift publisher” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2080"
    },
    {
      "id": "K2081",
      "number": 2081,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.fairness",
      "stage": "contract",
      "title": "Çok CPU ilerleme dağılımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ve thread payları ayrı ölçülür.",
      "action": "“Çok CPU ilerleme dağılımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: CPU ve thread payları ayrı ölçülür. “Dört CPU sekiz worker” kabulü ile “Bir CPU sürekli lock sahibi” reddini aynı sözleşmeye bağla.",
      "invariant": "CPU ve thread payları ayrı ölçülür",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_fairness"
      },
      "dependencies": [
        "K2080"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU sekiz worker",
      "counterexample": "Bir CPU sürekli lock sahibi",
      "guestAcceptance": "Her affinity grubunda ilerleme var",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_fairness_positive",
        "negativeName": "os_smp_acceptance_fairness_negative",
        "expectedMarker": "TURKOS/OS/K2085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu CPU ve thread payları ayrı ölçülür kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir CPU sürekli lock sahibi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2081"
    },
    {
      "id": "K2082",
      "number": 2082,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.fairness",
      "stage": "implementation",
      "title": "Çok CPU ilerleme dağılımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ve thread payları ayrı ölçülür.",
      "action": "kernel/src/runtime/smp_acceptance.rs hedefinde os_smp_acceptance_fairness yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "CPU ve thread payları ayrı ölçülür",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_fairness"
      },
      "dependencies": [
        "K2081"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU sekiz worker",
      "counterexample": "Bir CPU sürekli lock sahibi",
      "guestAcceptance": "Her affinity grubunda ilerleme var",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_fairness_positive",
        "negativeName": "os_smp_acceptance_fairness_negative",
        "expectedMarker": "TURKOS/OS/K2085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dört CPU sekiz worker ile Bir CPU sürekli lock sahibi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir CPU sürekli lock sahibi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2082"
    },
    {
      "id": "K2083",
      "number": 2083,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.fairness",
      "stage": "positive",
      "title": "Çok CPU ilerleme dağılımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ve thread payları ayrı ölçülür.",
      "action": "os_smp_acceptance_fairness_positive testini oluştur: “Dört CPU sekiz worker”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "CPU ve thread payları ayrı ölçülür",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_fairness"
      },
      "dependencies": [
        "K2082"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU sekiz worker",
      "counterexample": "Bir CPU sürekli lock sahibi",
      "guestAcceptance": "Her affinity grubunda ilerleme var",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_fairness_positive",
        "negativeName": "os_smp_acceptance_fairness_negative",
        "expectedMarker": "TURKOS/OS/K2085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dört CPU sekiz worker girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir CPU sürekli lock sahibi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2083"
    },
    {
      "id": "K2084",
      "number": 2084,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.fairness",
      "stage": "negative",
      "title": "Çok CPU ilerleme dağılımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ve thread payları ayrı ölçülür.",
      "action": "os_smp_acceptance_fairness_negative testini oluştur: “Bir CPU sürekli lock sahibi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "CPU ve thread payları ayrı ölçülür",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_fairness"
      },
      "dependencies": [
        "K2083"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU sekiz worker",
      "counterexample": "Bir CPU sürekli lock sahibi",
      "guestAcceptance": "Her affinity grubunda ilerleme var",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_fairness_positive",
        "negativeName": "os_smp_acceptance_fairness_negative",
        "expectedMarker": "TURKOS/OS/K2085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir CPU sürekli lock sahibi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir CPU sürekli lock sahibi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2084"
    },
    {
      "id": "K2085",
      "number": 2085,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.fairness",
      "stage": "integration",
      "title": "Çok CPU ilerleme dağılımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: CPU ve thread payları ayrı ölçülür.",
      "action": "Tek ürün Image'ında “Her affinity grubunda ilerleme var” kabulünü koştur. scripts/os-acceptance/smp_acceptance.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "CPU ve thread payları ayrı ölçülür",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_fairness"
      },
      "dependencies": [
        "K2084"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU sekiz worker",
      "counterexample": "Bir CPU sürekli lock sahibi",
      "guestAcceptance": "Her affinity grubunda ilerleme var",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_fairness_positive",
        "negativeName": "os_smp_acceptance_fairness_negative",
        "expectedMarker": "TURKOS/OS/K2085: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her affinity grubunda ilerleme var; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir CPU sürekli lock sahibi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2085"
    },
    {
      "id": "K2086",
      "number": 2086,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.lock_metrics",
      "stage": "contract",
      "title": "Kilit bekleme ve hold süresi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Bekleme ile kritik bölüm süreleri ayrıdır.",
      "action": "“Kilit bekleme ve hold süresi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bekleme ile kritik bölüm süreleri ayrıdır. “Contended ve uncontended örnek” kabulü ile “Tek sayı bütün gecikme diye sunulur” reddini aynı sözleşmeye bağla.",
      "invariant": "Bekleme ile kritik bölüm süreleri ayrıdır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_lock_metrics"
      },
      "dependencies": [
        "K2085"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Contended ve uncontended örnek",
      "counterexample": "Tek sayı bütün gecikme diye sunulur",
      "guestAcceptance": "Dağılım örnek sayısıyla raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_lock_metrics_positive",
        "negativeName": "os_smp_acceptance_lock_metrics_negative",
        "expectedMarker": "TURKOS/OS/K2090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bekleme ile kritik bölüm süreleri ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Tek sayı bütün gecikme diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2086"
    },
    {
      "id": "K2087",
      "number": 2087,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.lock_metrics",
      "stage": "implementation",
      "title": "Kilit bekleme ve hold süresi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Bekleme ile kritik bölüm süreleri ayrıdır.",
      "action": "kernel/src/runtime/smp_acceptance.rs hedefinde os_smp_acceptance_lock_metrics yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bekleme ile kritik bölüm süreleri ayrıdır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_lock_metrics"
      },
      "dependencies": [
        "K2086"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Contended ve uncontended örnek",
      "counterexample": "Tek sayı bütün gecikme diye sunulur",
      "guestAcceptance": "Dağılım örnek sayısıyla raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_lock_metrics_positive",
        "negativeName": "os_smp_acceptance_lock_metrics_negative",
        "expectedMarker": "TURKOS/OS/K2090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Contended ve uncontended örnek ile Tek sayı bütün gecikme diye sunulur ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Tek sayı bütün gecikme diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2087"
    },
    {
      "id": "K2088",
      "number": 2088,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.lock_metrics",
      "stage": "positive",
      "title": "Kilit bekleme ve hold süresi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Bekleme ile kritik bölüm süreleri ayrıdır.",
      "action": "os_smp_acceptance_lock_metrics_positive testini oluştur: “Contended ve uncontended örnek”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bekleme ile kritik bölüm süreleri ayrıdır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_lock_metrics"
      },
      "dependencies": [
        "K2087"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Contended ve uncontended örnek",
      "counterexample": "Tek sayı bütün gecikme diye sunulur",
      "guestAcceptance": "Dağılım örnek sayısıyla raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_lock_metrics_positive",
        "negativeName": "os_smp_acceptance_lock_metrics_negative",
        "expectedMarker": "TURKOS/OS/K2090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Contended ve uncontended örnek girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Tek sayı bütün gecikme diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2088"
    },
    {
      "id": "K2089",
      "number": 2089,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.lock_metrics",
      "stage": "negative",
      "title": "Kilit bekleme ve hold süresi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Bekleme ile kritik bölüm süreleri ayrıdır.",
      "action": "os_smp_acceptance_lock_metrics_negative testini oluştur: “Tek sayı bütün gecikme diye sunulur”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bekleme ile kritik bölüm süreleri ayrıdır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_lock_metrics"
      },
      "dependencies": [
        "K2088"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Contended ve uncontended örnek",
      "counterexample": "Tek sayı bütün gecikme diye sunulur",
      "guestAcceptance": "Dağılım örnek sayısıyla raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_lock_metrics_positive",
        "negativeName": "os_smp_acceptance_lock_metrics_negative",
        "expectedMarker": "TURKOS/OS/K2090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek sayı bütün gecikme diye sunulur karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Tek sayı bütün gecikme diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2089"
    },
    {
      "id": "K2090",
      "number": 2090,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.lock_metrics",
      "stage": "integration",
      "title": "Kilit bekleme ve hold süresi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Bekleme ile kritik bölüm süreleri ayrıdır.",
      "action": "Tek ürün Image'ında “Dağılım örnek sayısıyla raporlanır” kabulünü koştur. scripts/os-acceptance/smp_acceptance.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bekleme ile kritik bölüm süreleri ayrıdır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_lock_metrics"
      },
      "dependencies": [
        "K2089"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Contended ve uncontended örnek",
      "counterexample": "Tek sayı bütün gecikme diye sunulur",
      "guestAcceptance": "Dağılım örnek sayısıyla raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_lock_metrics_positive",
        "negativeName": "os_smp_acceptance_lock_metrics_negative",
        "expectedMarker": "TURKOS/OS/K2090: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dağılım örnek sayısıyla raporlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Tek sayı bütün gecikme diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2090"
    },
    {
      "id": "K2091",
      "number": 2091,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.cpu_failure",
      "stage": "contract",
      "title": "İkincil CPU yanıt vermeme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Timeout canlı sahibi sessiz free etmez.",
      "action": "“İkincil CPU yanıt vermeme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Timeout canlı sahibi sessiz free etmez. “Bir secondary bekleme enjeksiyonu” kabulü ile “Ack yokken bellek recycle” reddini aynı sözleşmeye bağla.",
      "invariant": "Timeout canlı sahibi sessiz free etmez",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_cpu_failure"
      },
      "dependencies": [
        "K2090"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Bir secondary bekleme enjeksiyonu",
      "counterexample": "Ack yokken bellek recycle",
      "guestAcceptance": "Sistem açık degraded veya failstop",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_cpu_failure_positive",
        "negativeName": "os_smp_acceptance_cpu_failure_negative",
        "expectedMarker": "TURKOS/OS/K2095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Timeout canlı sahibi sessiz free etmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ack yokken bellek recycle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2091"
    },
    {
      "id": "K2092",
      "number": 2092,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.cpu_failure",
      "stage": "implementation",
      "title": "İkincil CPU yanıt vermeme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Timeout canlı sahibi sessiz free etmez.",
      "action": "kernel/src/runtime/smp_acceptance.rs hedefinde os_smp_acceptance_cpu_failure yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Timeout canlı sahibi sessiz free etmez",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_cpu_failure"
      },
      "dependencies": [
        "K2091"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Bir secondary bekleme enjeksiyonu",
      "counterexample": "Ack yokken bellek recycle",
      "guestAcceptance": "Sistem açık degraded veya failstop",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_cpu_failure_positive",
        "negativeName": "os_smp_acceptance_cpu_failure_negative",
        "expectedMarker": "TURKOS/OS/K2095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir secondary bekleme enjeksiyonu ile Ack yokken bellek recycle ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ack yokken bellek recycle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2092"
    },
    {
      "id": "K2093",
      "number": 2093,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.cpu_failure",
      "stage": "positive",
      "title": "İkincil CPU yanıt vermeme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Timeout canlı sahibi sessiz free etmez.",
      "action": "os_smp_acceptance_cpu_failure_positive testini oluştur: “Bir secondary bekleme enjeksiyonu”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Timeout canlı sahibi sessiz free etmez",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_cpu_failure"
      },
      "dependencies": [
        "K2092"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Bir secondary bekleme enjeksiyonu",
      "counterexample": "Ack yokken bellek recycle",
      "guestAcceptance": "Sistem açık degraded veya failstop",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_cpu_failure_positive",
        "negativeName": "os_smp_acceptance_cpu_failure_negative",
        "expectedMarker": "TURKOS/OS/K2095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir secondary bekleme enjeksiyonu girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ack yokken bellek recycle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2093"
    },
    {
      "id": "K2094",
      "number": 2094,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.cpu_failure",
      "stage": "negative",
      "title": "İkincil CPU yanıt vermeme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Timeout canlı sahibi sessiz free etmez.",
      "action": "os_smp_acceptance_cpu_failure_negative testini oluştur: “Ack yokken bellek recycle”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Timeout canlı sahibi sessiz free etmez",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_cpu_failure"
      },
      "dependencies": [
        "K2093"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Bir secondary bekleme enjeksiyonu",
      "counterexample": "Ack yokken bellek recycle",
      "guestAcceptance": "Sistem açık degraded veya failstop",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_cpu_failure_positive",
        "negativeName": "os_smp_acceptance_cpu_failure_negative",
        "expectedMarker": "TURKOS/OS/K2095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ack yokken bellek recycle karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ack yokken bellek recycle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2094"
    },
    {
      "id": "K2095",
      "number": 2095,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.cpu_failure",
      "stage": "integration",
      "title": "İkincil CPU yanıt vermeme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Timeout canlı sahibi sessiz free etmez.",
      "action": "Tek ürün Image'ında “Sistem açık degraded veya failstop” kabulünü koştur. scripts/os-acceptance/smp_acceptance.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Timeout canlı sahibi sessiz free etmez",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_cpu_failure"
      },
      "dependencies": [
        "K2094"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Bir secondary bekleme enjeksiyonu",
      "counterexample": "Ack yokken bellek recycle",
      "guestAcceptance": "Sistem açık degraded veya failstop",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_cpu_failure_positive",
        "negativeName": "os_smp_acceptance_cpu_failure_negative",
        "expectedMarker": "TURKOS/OS/K2095: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sistem açık degraded veya failstop; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ack yokken bellek recycle” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2095"
    },
    {
      "id": "K2096",
      "number": 2096,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.workload",
      "stage": "contract",
      "title": "Birleşik SMP ürün yükü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Process IPC VFS timer birlikte sınanır.",
      "action": "“Birleşik SMP ürün yükü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Process IPC VFS timer birlikte sınanır. “Dört CPU shell ve ağ yükü” kabulü ile “Uzun yükte eski PID wake” reddini aynı sözleşmeye bağla.",
      "invariant": "Process IPC VFS timer birlikte sınanır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_workload"
      },
      "dependencies": [
        "K2095"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU shell ve ağ yükü",
      "counterexample": "Uzun yükte eski PID wake",
      "guestAcceptance": "Saatler boyunca muhasebe ve kanarya korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_workload_positive",
        "negativeName": "os_smp_acceptance_workload_negative",
        "expectedMarker": "TURKOS/OS/K2100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Process IPC VFS timer birlikte sınanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Uzun yükte eski PID wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2096"
    },
    {
      "id": "K2097",
      "number": 2097,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.workload",
      "stage": "implementation",
      "title": "Birleşik SMP ürün yükü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Process IPC VFS timer birlikte sınanır.",
      "action": "kernel/src/runtime/smp_acceptance.rs hedefinde os_smp_acceptance_workload yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/smp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Process IPC VFS timer birlikte sınanır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_workload"
      },
      "dependencies": [
        "K2096"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU shell ve ağ yükü",
      "counterexample": "Uzun yükte eski PID wake",
      "guestAcceptance": "Saatler boyunca muhasebe ve kanarya korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_workload_positive",
        "negativeName": "os_smp_acceptance_workload_negative",
        "expectedMarker": "TURKOS/OS/K2100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Dört CPU shell ve ağ yükü ile Uzun yükte eski PID wake ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Uzun yükte eski PID wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2097"
    },
    {
      "id": "K2098",
      "number": 2098,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.workload",
      "stage": "positive",
      "title": "Birleşik SMP ürün yükü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Process IPC VFS timer birlikte sınanır.",
      "action": "os_smp_acceptance_workload_positive testini oluştur: “Dört CPU shell ve ağ yükü”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Process IPC VFS timer birlikte sınanır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_workload"
      },
      "dependencies": [
        "K2097"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU shell ve ağ yükü",
      "counterexample": "Uzun yükte eski PID wake",
      "guestAcceptance": "Saatler boyunca muhasebe ve kanarya korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_workload_positive",
        "negativeName": "os_smp_acceptance_workload_negative",
        "expectedMarker": "TURKOS/OS/K2100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Dört CPU shell ve ağ yükü girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Uzun yükte eski PID wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2098"
    },
    {
      "id": "K2099",
      "number": 2099,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.workload",
      "stage": "negative",
      "title": "Birleşik SMP ürün yükü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Process IPC VFS timer birlikte sınanır.",
      "action": "os_smp_acceptance_workload_negative testini oluştur: “Uzun yükte eski PID wake”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Process IPC VFS timer birlikte sınanır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_workload"
      },
      "dependencies": [
        "K2098"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU shell ve ağ yükü",
      "counterexample": "Uzun yükte eski PID wake",
      "guestAcceptance": "Saatler boyunca muhasebe ve kanarya korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_workload_positive",
        "negativeName": "os_smp_acceptance_workload_negative",
        "expectedMarker": "TURKOS/OS/K2100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Uzun yükte eski PID wake karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Uzun yükte eski PID wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2099"
    },
    {
      "id": "K2100",
      "number": 2100,
      "phase": 15,
      "module": "smp_acceptance",
      "feature": "smp_acceptance.workload",
      "stage": "integration",
      "title": "Birleşik SMP ürün yükü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "İki CPU probe ürün SMP scheduler değildir. PerCPU hizmet kilit TLB emekliliği birlikte taşınır. Bu hamlenin koruduğu değişmez: Process IPC VFS timer birlikte sınanır.",
      "action": "Tek ürün Image'ında “Saatler boyunca muhasebe ve kanarya korunur” kabulünü koştur. scripts/os-acceptance/smp_acceptance.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Process IPC VFS timer birlikte sınanır",
      "source": {
        "target": "kernel/src/runtime/smp_acceptance.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/smp.rs",
        "existingReferenceSha256": "c048113a2815bef8c2f8fd485fdb4fd92c90b63569b027ed88da6a1173ad5383",
        "symbol": "os_smp_acceptance_workload"
      },
      "dependencies": [
        "K2099"
      ],
      "phasePrerequisites": [
        14
      ],
      "positive": "Dört CPU shell ve ağ yükü",
      "counterexample": "Uzun yükte eski PID wake",
      "guestAcceptance": "Saatler boyunca muhasebe ve kanarya korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/smp_acceptance.rs",
        "harness": "scripts/os-acceptance/smp_acceptance.mjs",
        "positiveName": "os_smp_acceptance_workload_positive",
        "negativeName": "os_smp_acceptance_workload_negative",
        "expectedMarker": "TURKOS/OS/K2100: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Saatler boyunca muhasebe ve kanarya korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Uzun yükte eski PID wake” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-15#k2100"
    },
    {
      "id": "K2101",
      "number": 2101,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.readiness",
      "stage": "contract",
      "title": "Hizmet ready protokolü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Çalışan PID hizmet hazır demek değildir.",
      "action": "“Hizmet ready protokolü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Çalışan PID hizmet hazır demek değildir. “Servis handshake tamamlar” kabulü ile “PID var ama endpoint yok” reddini aynı sözleşmeye bağla.",
      "invariant": "Çalışan PID hizmet hazır demek değildir",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_readiness"
      },
      "dependencies": [],
      "phasePrerequisites": [
        15
      ],
      "positive": "Servis handshake tamamlar",
      "counterexample": "PID var ama endpoint yok",
      "guestAcceptance": "Timeout ve degraded durum görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_readiness_positive",
        "negativeName": "os_service_supervision_readiness_negative",
        "expectedMarker": "TURKOS/OS/K2105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Çalışan PID hizmet hazır demek değildir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“PID var ama endpoint yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2101"
    },
    {
      "id": "K2102",
      "number": 2102,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.readiness",
      "stage": "implementation",
      "title": "Hizmet ready protokolü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Çalışan PID hizmet hazır demek değildir.",
      "action": "userspace/src/service_supervision.rs hedefinde os_service_supervision_readiness yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Çalışan PID hizmet hazır demek değildir",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_readiness"
      },
      "dependencies": [
        "K2101"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Servis handshake tamamlar",
      "counterexample": "PID var ama endpoint yok",
      "guestAcceptance": "Timeout ve degraded durum görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_readiness_positive",
        "negativeName": "os_service_supervision_readiness_negative",
        "expectedMarker": "TURKOS/OS/K2105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Servis handshake tamamlar ile PID var ama endpoint yok ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“PID var ama endpoint yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2102"
    },
    {
      "id": "K2103",
      "number": 2103,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.readiness",
      "stage": "positive",
      "title": "Hizmet ready protokolü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Çalışan PID hizmet hazır demek değildir.",
      "action": "os_service_supervision_readiness_positive testini oluştur: “Servis handshake tamamlar”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Çalışan PID hizmet hazır demek değildir",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_readiness"
      },
      "dependencies": [
        "K2102"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Servis handshake tamamlar",
      "counterexample": "PID var ama endpoint yok",
      "guestAcceptance": "Timeout ve degraded durum görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_readiness_positive",
        "negativeName": "os_service_supervision_readiness_negative",
        "expectedMarker": "TURKOS/OS/K2105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Servis handshake tamamlar girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“PID var ama endpoint yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2103"
    },
    {
      "id": "K2104",
      "number": 2104,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.readiness",
      "stage": "negative",
      "title": "Hizmet ready protokolü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Çalışan PID hizmet hazır demek değildir.",
      "action": "os_service_supervision_readiness_negative testini oluştur: “PID var ama endpoint yok”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Çalışan PID hizmet hazır demek değildir",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_readiness"
      },
      "dependencies": [
        "K2103"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Servis handshake tamamlar",
      "counterexample": "PID var ama endpoint yok",
      "guestAcceptance": "Timeout ve degraded durum görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_readiness_positive",
        "negativeName": "os_service_supervision_readiness_negative",
        "expectedMarker": "TURKOS/OS/K2105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "PID var ama endpoint yok karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“PID var ama endpoint yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2104"
    },
    {
      "id": "K2105",
      "number": 2105,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.readiness",
      "stage": "integration",
      "title": "Hizmet ready protokolü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Çalışan PID hizmet hazır demek değildir.",
      "action": "Tek ürün Image'ında “Timeout ve degraded durum görünür” kabulünü koştur. scripts/os-acceptance/service_supervision.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Çalışan PID hizmet hazır demek değildir",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_readiness"
      },
      "dependencies": [
        "K2104"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Servis handshake tamamlar",
      "counterexample": "PID var ama endpoint yok",
      "guestAcceptance": "Timeout ve degraded durum görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_readiness_positive",
        "negativeName": "os_service_supervision_readiness_negative",
        "expectedMarker": "TURKOS/OS/K2105: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Timeout ve degraded durum görünür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“PID var ama endpoint yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2105"
    },
    {
      "id": "K2106",
      "number": 2106,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.health",
      "stage": "contract",
      "title": "Sınırlı health kontrolü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Health polling servisi yeniden başlatma fırtınası yapmaz.",
      "action": "“Sınırlı health kontrolü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Health polling servisi yeniden başlatma fırtınası yapmaz. “Üç kontrollü health yanıtı” kabulü ile “Yanıtsız veya geciken reply” reddini aynı sözleşmeye bağla.",
      "invariant": "Health polling servisi yeniden başlatma fırtınası yapmaz",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_health"
      },
      "dependencies": [
        "K2105"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç kontrollü health yanıtı",
      "counterexample": "Yanıtsız veya geciken reply",
      "guestAcceptance": "Budget ve restart nedeni kaydedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_health_positive",
        "negativeName": "os_service_supervision_health_negative",
        "expectedMarker": "TURKOS/OS/K2110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Health polling servisi yeniden başlatma fırtınası yapmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanıtsız veya geciken reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2106"
    },
    {
      "id": "K2107",
      "number": 2107,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.health",
      "stage": "implementation",
      "title": "Sınırlı health kontrolü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Health polling servisi yeniden başlatma fırtınası yapmaz.",
      "action": "userspace/src/service_supervision.rs hedefinde os_service_supervision_health yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Health polling servisi yeniden başlatma fırtınası yapmaz",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_health"
      },
      "dependencies": [
        "K2106"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç kontrollü health yanıtı",
      "counterexample": "Yanıtsız veya geciken reply",
      "guestAcceptance": "Budget ve restart nedeni kaydedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_health_positive",
        "negativeName": "os_service_supervision_health_negative",
        "expectedMarker": "TURKOS/OS/K2110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç kontrollü health yanıtı ile Yanıtsız veya geciken reply ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanıtsız veya geciken reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2107"
    },
    {
      "id": "K2108",
      "number": 2108,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.health",
      "stage": "positive",
      "title": "Sınırlı health kontrolü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Health polling servisi yeniden başlatma fırtınası yapmaz.",
      "action": "os_service_supervision_health_positive testini oluştur: “Üç kontrollü health yanıtı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Health polling servisi yeniden başlatma fırtınası yapmaz",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_health"
      },
      "dependencies": [
        "K2107"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç kontrollü health yanıtı",
      "counterexample": "Yanıtsız veya geciken reply",
      "guestAcceptance": "Budget ve restart nedeni kaydedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_health_positive",
        "negativeName": "os_service_supervision_health_negative",
        "expectedMarker": "TURKOS/OS/K2110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç kontrollü health yanıtı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanıtsız veya geciken reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2108"
    },
    {
      "id": "K2109",
      "number": 2109,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.health",
      "stage": "negative",
      "title": "Sınırlı health kontrolü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Health polling servisi yeniden başlatma fırtınası yapmaz.",
      "action": "os_service_supervision_health_negative testini oluştur: “Yanıtsız veya geciken reply”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Health polling servisi yeniden başlatma fırtınası yapmaz",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_health"
      },
      "dependencies": [
        "K2108"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç kontrollü health yanıtı",
      "counterexample": "Yanıtsız veya geciken reply",
      "guestAcceptance": "Budget ve restart nedeni kaydedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_health_positive",
        "negativeName": "os_service_supervision_health_negative",
        "expectedMarker": "TURKOS/OS/K2110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanıtsız veya geciken reply karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanıtsız veya geciken reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2109"
    },
    {
      "id": "K2110",
      "number": 2110,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.health",
      "stage": "integration",
      "title": "Sınırlı health kontrolü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Health polling servisi yeniden başlatma fırtınası yapmaz.",
      "action": "Tek ürün Image'ında “Budget ve restart nedeni kaydedilir” kabulünü koştur. scripts/os-acceptance/service_supervision.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Health polling servisi yeniden başlatma fırtınası yapmaz",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_health"
      },
      "dependencies": [
        "K2109"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç kontrollü health yanıtı",
      "counterexample": "Yanıtsız veya geciken reply",
      "guestAcceptance": "Budget ve restart nedeni kaydedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_health_positive",
        "negativeName": "os_service_supervision_health_negative",
        "expectedMarker": "TURKOS/OS/K2110: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Budget ve restart nedeni kaydedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanıtsız veya geciken reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2110"
    },
    {
      "id": "K2111",
      "number": 2111,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.dependency_stop",
      "stage": "contract",
      "title": "Bağımlılık tersine stop sırası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Consumer durmadan provider sökülmez.",
      "action": "“Bağımlılık tersine stop sırası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Consumer durmadan provider sökülmez. “Shell file console sırası” kabulü ile “Provider önce kapatılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Consumer durmadan provider sökülmez",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_dependency_stop"
      },
      "dependencies": [
        "K2110"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shell file console sırası",
      "counterexample": "Provider önce kapatılır",
      "guestAcceptance": "Bekleyen istemciler tanımlı cevap alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_dependency_stop_positive",
        "negativeName": "os_service_supervision_dependency_stop_negative",
        "expectedMarker": "TURKOS/OS/K2115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Consumer durmadan provider sökülmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Provider önce kapatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2111"
    },
    {
      "id": "K2112",
      "number": 2112,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.dependency_stop",
      "stage": "implementation",
      "title": "Bağımlılık tersine stop sırası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Consumer durmadan provider sökülmez.",
      "action": "userspace/src/service_supervision.rs hedefinde os_service_supervision_dependency_stop yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Consumer durmadan provider sökülmez",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_dependency_stop"
      },
      "dependencies": [
        "K2111"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shell file console sırası",
      "counterexample": "Provider önce kapatılır",
      "guestAcceptance": "Bekleyen istemciler tanımlı cevap alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_dependency_stop_positive",
        "negativeName": "os_service_supervision_dependency_stop_negative",
        "expectedMarker": "TURKOS/OS/K2115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Shell file console sırası ile Provider önce kapatılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Provider önce kapatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2112"
    },
    {
      "id": "K2113",
      "number": 2113,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.dependency_stop",
      "stage": "positive",
      "title": "Bağımlılık tersine stop sırası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Consumer durmadan provider sökülmez.",
      "action": "os_service_supervision_dependency_stop_positive testini oluştur: “Shell file console sırası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Consumer durmadan provider sökülmez",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_dependency_stop"
      },
      "dependencies": [
        "K2112"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shell file console sırası",
      "counterexample": "Provider önce kapatılır",
      "guestAcceptance": "Bekleyen istemciler tanımlı cevap alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_dependency_stop_positive",
        "negativeName": "os_service_supervision_dependency_stop_negative",
        "expectedMarker": "TURKOS/OS/K2115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Shell file console sırası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Provider önce kapatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2113"
    },
    {
      "id": "K2114",
      "number": 2114,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.dependency_stop",
      "stage": "negative",
      "title": "Bağımlılık tersine stop sırası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Consumer durmadan provider sökülmez.",
      "action": "os_service_supervision_dependency_stop_negative testini oluştur: “Provider önce kapatılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Consumer durmadan provider sökülmez",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_dependency_stop"
      },
      "dependencies": [
        "K2113"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shell file console sırası",
      "counterexample": "Provider önce kapatılır",
      "guestAcceptance": "Bekleyen istemciler tanımlı cevap alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_dependency_stop_positive",
        "negativeName": "os_service_supervision_dependency_stop_negative",
        "expectedMarker": "TURKOS/OS/K2115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Provider önce kapatılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Provider önce kapatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2114"
    },
    {
      "id": "K2115",
      "number": 2115,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.dependency_stop",
      "stage": "integration",
      "title": "Bağımlılık tersine stop sırası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Consumer durmadan provider sökülmez.",
      "action": "Tek ürün Image'ında “Bekleyen istemciler tanımlı cevap alır” kabulünü koştur. scripts/os-acceptance/service_supervision.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Consumer durmadan provider sökülmez",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_dependency_stop"
      },
      "dependencies": [
        "K2114"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shell file console sırası",
      "counterexample": "Provider önce kapatılır",
      "guestAcceptance": "Bekleyen istemciler tanımlı cevap alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_dependency_stop_positive",
        "negativeName": "os_service_supervision_dependency_stop_negative",
        "expectedMarker": "TURKOS/OS/K2115: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bekleyen istemciler tanımlı cevap alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Provider önce kapatılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2115"
    },
    {
      "id": "K2116",
      "number": 2116,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.crash_loop",
      "stage": "contract",
      "title": "Hizmet crash loop karantinası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Restart sınırı kaynak tüketimini durdurur.",
      "action": "“Hizmet crash loop karantinası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Restart sınırı kaynak tüketimini durdurur. “Üç hızlı servis crash” kabulü ile “Eski PID health yanıtı” reddini aynı sözleşmeye bağla.",
      "invariant": "Restart sınırı kaynak tüketimini durdurur",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_crash_loop"
      },
      "dependencies": [
        "K2115"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç hızlı servis crash",
      "counterexample": "Eski PID health yanıtı",
      "guestAcceptance": "Karantina ve recovery seçeneği açık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_crash_loop_positive",
        "negativeName": "os_service_supervision_crash_loop_negative",
        "expectedMarker": "TURKOS/OS/K2120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Restart sınırı kaynak tüketimini durdurur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski PID health yanıtı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2116"
    },
    {
      "id": "K2117",
      "number": 2117,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.crash_loop",
      "stage": "implementation",
      "title": "Hizmet crash loop karantinası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Restart sınırı kaynak tüketimini durdurur.",
      "action": "userspace/src/service_supervision.rs hedefinde os_service_supervision_crash_loop yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/init_exit.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Restart sınırı kaynak tüketimini durdurur",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_crash_loop"
      },
      "dependencies": [
        "K2116"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç hızlı servis crash",
      "counterexample": "Eski PID health yanıtı",
      "guestAcceptance": "Karantina ve recovery seçeneği açık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_crash_loop_positive",
        "negativeName": "os_service_supervision_crash_loop_negative",
        "expectedMarker": "TURKOS/OS/K2120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç hızlı servis crash ile Eski PID health yanıtı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski PID health yanıtı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2117"
    },
    {
      "id": "K2118",
      "number": 2118,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.crash_loop",
      "stage": "positive",
      "title": "Hizmet crash loop karantinası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Restart sınırı kaynak tüketimini durdurur.",
      "action": "os_service_supervision_crash_loop_positive testini oluştur: “Üç hızlı servis crash”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Restart sınırı kaynak tüketimini durdurur",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_crash_loop"
      },
      "dependencies": [
        "K2117"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç hızlı servis crash",
      "counterexample": "Eski PID health yanıtı",
      "guestAcceptance": "Karantina ve recovery seçeneği açık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_crash_loop_positive",
        "negativeName": "os_service_supervision_crash_loop_negative",
        "expectedMarker": "TURKOS/OS/K2120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç hızlı servis crash girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski PID health yanıtı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2118"
    },
    {
      "id": "K2119",
      "number": 2119,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.crash_loop",
      "stage": "negative",
      "title": "Hizmet crash loop karantinası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Restart sınırı kaynak tüketimini durdurur.",
      "action": "os_service_supervision_crash_loop_negative testini oluştur: “Eski PID health yanıtı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Restart sınırı kaynak tüketimini durdurur",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_crash_loop"
      },
      "dependencies": [
        "K2118"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç hızlı servis crash",
      "counterexample": "Eski PID health yanıtı",
      "guestAcceptance": "Karantina ve recovery seçeneği açık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_crash_loop_positive",
        "negativeName": "os_service_supervision_crash_loop_negative",
        "expectedMarker": "TURKOS/OS/K2120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski PID health yanıtı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski PID health yanıtı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2119"
    },
    {
      "id": "K2120",
      "number": 2120,
      "phase": 16,
      "module": "service_supervision",
      "feature": "service_supervision.crash_loop",
      "stage": "integration",
      "title": "Hizmet crash loop karantinası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Restart sınırı kaynak tüketimini durdurur.",
      "action": "Tek ürün Image'ında “Karantina ve recovery seçeneği açık” kabulünü koştur. scripts/os-acceptance/service_supervision.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Restart sınırı kaynak tüketimini durdurur",
      "source": {
        "target": "userspace/src/service_supervision.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/init_exit.rs",
        "existingReferenceSha256": "900eb851548d8cadee2e2f0a003b5d6f6d60fe7b5abb380f8bfd5962840f6857",
        "symbol": "os_service_supervision_crash_loop"
      },
      "dependencies": [
        "K2119"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Üç hızlı servis crash",
      "counterexample": "Eski PID health yanıtı",
      "guestAcceptance": "Karantina ve recovery seçeneği açık",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/service_supervision.rs",
        "harness": "scripts/os-acceptance/service_supervision.mjs",
        "positiveName": "os_service_supervision_crash_loop_positive",
        "negativeName": "os_service_supervision_crash_loop_negative",
        "expectedMarker": "TURKOS/OS/K2120: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Karantina ve recovery seçeneği açık; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski PID health yanıtı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2120"
    },
    {
      "id": "K2121",
      "number": 2121,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.capability",
      "stage": "contract",
      "title": "Power yönetim yetkisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kullanıcı program keyfi systemoff yapamaz.",
      "action": "“Power yönetim yetkisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kullanıcı program keyfi systemoff yapamaz. “Yetkili PID1 isteği” kabulü ile “Yetkisiz shell aracı” reddini aynı sözleşmeye bağla.",
      "invariant": "Kullanıcı program keyfi systemoff yapamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_capability"
      },
      "dependencies": [
        "K2120"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Yetkili PID1 isteği",
      "counterexample": "Yetkisiz shell aracı",
      "guestAcceptance": "Ret sonrası bütün süreçler çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_capability_positive",
        "negativeName": "os_guest_power_capability_negative",
        "expectedMarker": "TURKOS/OS/K2125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kullanıcı program keyfi systemoff yapamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yetkisiz shell aracı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2121"
    },
    {
      "id": "K2122",
      "number": 2122,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.capability",
      "stage": "implementation",
      "title": "Power yönetim yetkisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kullanıcı program keyfi systemoff yapamaz.",
      "action": "kernel/src/arch/aarch64/guest_power.rs hedefinde os_guest_power_capability yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/bootinfo.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kullanıcı program keyfi systemoff yapamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_capability"
      },
      "dependencies": [
        "K2121"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Yetkili PID1 isteği",
      "counterexample": "Yetkisiz shell aracı",
      "guestAcceptance": "Ret sonrası bütün süreçler çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_capability_positive",
        "negativeName": "os_guest_power_capability_negative",
        "expectedMarker": "TURKOS/OS/K2125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Yetkili PID1 isteği ile Yetkisiz shell aracı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yetkisiz shell aracı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2122"
    },
    {
      "id": "K2123",
      "number": 2123,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.capability",
      "stage": "positive",
      "title": "Power yönetim yetkisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kullanıcı program keyfi systemoff yapamaz.",
      "action": "os_guest_power_capability_positive testini oluştur: “Yetkili PID1 isteği”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kullanıcı program keyfi systemoff yapamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_capability"
      },
      "dependencies": [
        "K2122"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Yetkili PID1 isteği",
      "counterexample": "Yetkisiz shell aracı",
      "guestAcceptance": "Ret sonrası bütün süreçler çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_capability_positive",
        "negativeName": "os_guest_power_capability_negative",
        "expectedMarker": "TURKOS/OS/K2125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Yetkili PID1 isteği girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yetkisiz shell aracı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2123"
    },
    {
      "id": "K2124",
      "number": 2124,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.capability",
      "stage": "negative",
      "title": "Power yönetim yetkisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kullanıcı program keyfi systemoff yapamaz.",
      "action": "os_guest_power_capability_negative testini oluştur: “Yetkisiz shell aracı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kullanıcı program keyfi systemoff yapamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_capability"
      },
      "dependencies": [
        "K2123"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Yetkili PID1 isteği",
      "counterexample": "Yetkisiz shell aracı",
      "guestAcceptance": "Ret sonrası bütün süreçler çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_capability_positive",
        "negativeName": "os_guest_power_capability_negative",
        "expectedMarker": "TURKOS/OS/K2125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yetkisiz shell aracı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yetkisiz shell aracı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2124"
    },
    {
      "id": "K2125",
      "number": 2125,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.capability",
      "stage": "integration",
      "title": "Power yönetim yetkisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kullanıcı program keyfi systemoff yapamaz.",
      "action": "Tek ürün Image'ında “Ret sonrası bütün süreçler çalışır” kabulünü koştur. scripts/os-acceptance/guest_power.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kullanıcı program keyfi systemoff yapamaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_capability"
      },
      "dependencies": [
        "K2124"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Yetkili PID1 isteği",
      "counterexample": "Yetkisiz shell aracı",
      "guestAcceptance": "Ret sonrası bütün süreçler çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_capability_positive",
        "negativeName": "os_guest_power_capability_negative",
        "expectedMarker": "TURKOS/OS/K2125: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sonrası bütün süreçler çalışır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yetkisiz shell aracı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2125"
    },
    {
      "id": "K2126",
      "number": 2126,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_off",
      "stage": "contract",
      "title": "PSCI SYSTEMOFF yolu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Destek ve conduit kontrol edilir.",
      "action": "“PSCI SYSTEMOFF yolu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Destek ve conduit kontrol edilir. “Destekli virt konuk” kabulü ile “PSCI yok veya unsupported” reddini aynı sözleşmeye bağla.",
      "invariant": "Destek ve conduit kontrol edilir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_off"
      },
      "dependencies": [
        "K2125"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Destekli virt konuk",
      "counterexample": "PSCI yok veya unsupported",
      "guestAcceptance": "Konuk tanısı host quit ile karışmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_off_positive",
        "negativeName": "os_guest_power_psci_off_negative",
        "expectedMarker": "TURKOS/OS/K2130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Destek ve conduit kontrol edilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“PSCI yok veya unsupported” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2126"
    },
    {
      "id": "K2127",
      "number": 2127,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_off",
      "stage": "implementation",
      "title": "PSCI SYSTEMOFF yolu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Destek ve conduit kontrol edilir.",
      "action": "kernel/src/arch/aarch64/guest_power.rs hedefinde os_guest_power_psci_off yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/bootinfo.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Destek ve conduit kontrol edilir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_off"
      },
      "dependencies": [
        "K2126"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Destekli virt konuk",
      "counterexample": "PSCI yok veya unsupported",
      "guestAcceptance": "Konuk tanısı host quit ile karışmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_off_positive",
        "negativeName": "os_guest_power_psci_off_negative",
        "expectedMarker": "TURKOS/OS/K2130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Destekli virt konuk ile PSCI yok veya unsupported ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“PSCI yok veya unsupported” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2127"
    },
    {
      "id": "K2128",
      "number": 2128,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_off",
      "stage": "positive",
      "title": "PSCI SYSTEMOFF yolu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Destek ve conduit kontrol edilir.",
      "action": "os_guest_power_psci_off_positive testini oluştur: “Destekli virt konuk”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Destek ve conduit kontrol edilir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_off"
      },
      "dependencies": [
        "K2127"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Destekli virt konuk",
      "counterexample": "PSCI yok veya unsupported",
      "guestAcceptance": "Konuk tanısı host quit ile karışmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_off_positive",
        "negativeName": "os_guest_power_psci_off_negative",
        "expectedMarker": "TURKOS/OS/K2130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Destekli virt konuk girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“PSCI yok veya unsupported” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2128"
    },
    {
      "id": "K2129",
      "number": 2129,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_off",
      "stage": "negative",
      "title": "PSCI SYSTEMOFF yolu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Destek ve conduit kontrol edilir.",
      "action": "os_guest_power_psci_off_negative testini oluştur: “PSCI yok veya unsupported”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Destek ve conduit kontrol edilir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_off"
      },
      "dependencies": [
        "K2128"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Destekli virt konuk",
      "counterexample": "PSCI yok veya unsupported",
      "guestAcceptance": "Konuk tanısı host quit ile karışmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_off_positive",
        "negativeName": "os_guest_power_psci_off_negative",
        "expectedMarker": "TURKOS/OS/K2130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "PSCI yok veya unsupported karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“PSCI yok veya unsupported” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2129"
    },
    {
      "id": "K2130",
      "number": 2130,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_off",
      "stage": "integration",
      "title": "PSCI SYSTEMOFF yolu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Destek ve conduit kontrol edilir.",
      "action": "Tek ürün Image'ında “Konuk tanısı host quit ile karışmaz” kabulünü koştur. scripts/os-acceptance/guest_power.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Destek ve conduit kontrol edilir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_off"
      },
      "dependencies": [
        "K2129"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Destekli virt konuk",
      "counterexample": "PSCI yok veya unsupported",
      "guestAcceptance": "Konuk tanısı host quit ile karışmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_off_positive",
        "negativeName": "os_guest_power_psci_off_negative",
        "expectedMarker": "TURKOS/OS/K2130: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Konuk tanısı host quit ile karışmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“PSCI yok veya unsupported” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2130"
    },
    {
      "id": "K2131",
      "number": 2131,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_reset",
      "stage": "contract",
      "title": "PSCI SYSTEMRESET yolu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Reset yeni boot kimliği üretir.",
      "action": "“PSCI SYSTEMRESET yolu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Reset yeni boot kimliği üretir. “Kontrollü konuk reboot” kabulü ile “Eski boot log tekrar kullanılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Reset yeni boot kimliği üretir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_reset"
      },
      "dependencies": [
        "K2130"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Kontrollü konuk reboot",
      "counterexample": "Eski boot log tekrar kullanılır",
      "guestAcceptance": "Yeni BOOT0 eski kayıttan ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_reset_positive",
        "negativeName": "os_guest_power_psci_reset_negative",
        "expectedMarker": "TURKOS/OS/K2135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Reset yeni boot kimliği üretir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski boot log tekrar kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2131"
    },
    {
      "id": "K2132",
      "number": 2132,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_reset",
      "stage": "implementation",
      "title": "PSCI SYSTEMRESET yolu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Reset yeni boot kimliği üretir.",
      "action": "kernel/src/arch/aarch64/guest_power.rs hedefinde os_guest_power_psci_reset yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/bootinfo.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Reset yeni boot kimliği üretir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_reset"
      },
      "dependencies": [
        "K2131"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Kontrollü konuk reboot",
      "counterexample": "Eski boot log tekrar kullanılır",
      "guestAcceptance": "Yeni BOOT0 eski kayıttan ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_reset_positive",
        "negativeName": "os_guest_power_psci_reset_negative",
        "expectedMarker": "TURKOS/OS/K2135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kontrollü konuk reboot ile Eski boot log tekrar kullanılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski boot log tekrar kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2132"
    },
    {
      "id": "K2133",
      "number": 2133,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_reset",
      "stage": "positive",
      "title": "PSCI SYSTEMRESET yolu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Reset yeni boot kimliği üretir.",
      "action": "os_guest_power_psci_reset_positive testini oluştur: “Kontrollü konuk reboot”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Reset yeni boot kimliği üretir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_reset"
      },
      "dependencies": [
        "K2132"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Kontrollü konuk reboot",
      "counterexample": "Eski boot log tekrar kullanılır",
      "guestAcceptance": "Yeni BOOT0 eski kayıttan ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_reset_positive",
        "negativeName": "os_guest_power_psci_reset_negative",
        "expectedMarker": "TURKOS/OS/K2135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kontrollü konuk reboot girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski boot log tekrar kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2133"
    },
    {
      "id": "K2134",
      "number": 2134,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_reset",
      "stage": "negative",
      "title": "PSCI SYSTEMRESET yolu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Reset yeni boot kimliği üretir.",
      "action": "os_guest_power_psci_reset_negative testini oluştur: “Eski boot log tekrar kullanılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Reset yeni boot kimliği üretir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_reset"
      },
      "dependencies": [
        "K2133"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Kontrollü konuk reboot",
      "counterexample": "Eski boot log tekrar kullanılır",
      "guestAcceptance": "Yeni BOOT0 eski kayıttan ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_reset_positive",
        "negativeName": "os_guest_power_psci_reset_negative",
        "expectedMarker": "TURKOS/OS/K2135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski boot log tekrar kullanılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski boot log tekrar kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2134"
    },
    {
      "id": "K2135",
      "number": 2135,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.psci_reset",
      "stage": "integration",
      "title": "PSCI SYSTEMRESET yolu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Reset yeni boot kimliği üretir.",
      "action": "Tek ürün Image'ında “Yeni BOOT0 eski kayıttan ayrılır” kabulünü koştur. scripts/os-acceptance/guest_power.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Reset yeni boot kimliği üretir",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_psci_reset"
      },
      "dependencies": [
        "K2134"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Kontrollü konuk reboot",
      "counterexample": "Eski boot log tekrar kullanılır",
      "guestAcceptance": "Yeni BOOT0 eski kayıttan ayrılır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_psci_reset_positive",
        "negativeName": "os_guest_power_psci_reset_negative",
        "expectedMarker": "TURKOS/OS/K2135: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni BOOT0 eski kayıttan ayrılır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski boot log tekrar kullanılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2135"
    },
    {
      "id": "K2136",
      "number": 2136,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.fallback",
      "stage": "contract",
      "title": "Desteksiz power yolu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Başarısız reset başarı diye raporlanmaz.",
      "action": "“Desteksiz power yolu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başarısız reset başarı diye raporlanmaz. “Systemoff desteklenmeyen profil” kabulü ile “Sonsuz retry döngüsü” reddini aynı sözleşmeye bağla.",
      "invariant": "Başarısız reset başarı diye raporlanmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_fallback"
      },
      "dependencies": [
        "K2135"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Systemoff desteklenmeyen profil",
      "counterexample": "Sonsuz retry döngüsü",
      "guestAcceptance": "Park degraded tanısı ve host timeout ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_fallback_positive",
        "negativeName": "os_guest_power_fallback_negative",
        "expectedMarker": "TURKOS/OS/K2140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başarısız reset başarı diye raporlanmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sonsuz retry döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2136"
    },
    {
      "id": "K2137",
      "number": 2137,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.fallback",
      "stage": "implementation",
      "title": "Desteksiz power yolu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Başarısız reset başarı diye raporlanmaz.",
      "action": "kernel/src/arch/aarch64/guest_power.rs hedefinde os_guest_power_fallback yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/bootinfo.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başarısız reset başarı diye raporlanmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_fallback"
      },
      "dependencies": [
        "K2136"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Systemoff desteklenmeyen profil",
      "counterexample": "Sonsuz retry döngüsü",
      "guestAcceptance": "Park degraded tanısı ve host timeout ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_fallback_positive",
        "negativeName": "os_guest_power_fallback_negative",
        "expectedMarker": "TURKOS/OS/K2140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Systemoff desteklenmeyen profil ile Sonsuz retry döngüsü ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sonsuz retry döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2137"
    },
    {
      "id": "K2138",
      "number": 2138,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.fallback",
      "stage": "positive",
      "title": "Desteksiz power yolu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Başarısız reset başarı diye raporlanmaz.",
      "action": "os_guest_power_fallback_positive testini oluştur: “Systemoff desteklenmeyen profil”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başarısız reset başarı diye raporlanmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_fallback"
      },
      "dependencies": [
        "K2137"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Systemoff desteklenmeyen profil",
      "counterexample": "Sonsuz retry döngüsü",
      "guestAcceptance": "Park degraded tanısı ve host timeout ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_fallback_positive",
        "negativeName": "os_guest_power_fallback_negative",
        "expectedMarker": "TURKOS/OS/K2140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Systemoff desteklenmeyen profil girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sonsuz retry döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2138"
    },
    {
      "id": "K2139",
      "number": 2139,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.fallback",
      "stage": "negative",
      "title": "Desteksiz power yolu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Başarısız reset başarı diye raporlanmaz.",
      "action": "os_guest_power_fallback_negative testini oluştur: “Sonsuz retry döngüsü”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başarısız reset başarı diye raporlanmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_fallback"
      },
      "dependencies": [
        "K2138"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Systemoff desteklenmeyen profil",
      "counterexample": "Sonsuz retry döngüsü",
      "guestAcceptance": "Park degraded tanısı ve host timeout ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_fallback_positive",
        "negativeName": "os_guest_power_fallback_negative",
        "expectedMarker": "TURKOS/OS/K2140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sonsuz retry döngüsü karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sonsuz retry döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2139"
    },
    {
      "id": "K2140",
      "number": 2140,
      "phase": 16,
      "module": "guest_power",
      "feature": "guest_power.fallback",
      "stage": "integration",
      "title": "Desteksiz power yolu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Başarısız reset başarı diye raporlanmaz.",
      "action": "Tek ürün Image'ında “Park degraded tanısı ve host timeout ayrı” kabulünü koştur. scripts/os-acceptance/guest_power.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başarısız reset başarı diye raporlanmaz",
      "source": {
        "target": "kernel/src/arch/aarch64/guest_power.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_guest_power_fallback"
      },
      "dependencies": [
        "K2139"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Systemoff desteklenmeyen profil",
      "counterexample": "Sonsuz retry döngüsü",
      "guestAcceptance": "Park degraded tanısı ve host timeout ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/guest_power.rs",
        "harness": "scripts/os-acceptance/guest_power.mjs",
        "positiveName": "os_guest_power_fallback_positive",
        "negativeName": "os_guest_power_fallback_negative",
        "expectedMarker": "TURKOS/OS/K2140: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Park degraded tanısı ve host timeout ayrı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sonsuz retry döngüsü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2140"
    },
    {
      "id": "K2141",
      "number": 2141,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.quiesce",
      "stage": "contract",
      "title": "Yeni yazı kabulünü durdurma · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Shutdown sonrası yeni write alınmaz.",
      "action": "“Yeni yazı kabulünü durdurma” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Shutdown sonrası yeni write alınmaz. “Mevcut iki write drain” kabulü ile “Yeni client write yarışı” reddini aynı sözleşmeye bağla.",
      "invariant": "Shutdown sonrası yeni write alınmaz",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_quiesce"
      },
      "dependencies": [
        "K2140"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Mevcut iki write drain",
      "counterexample": "Yeni client write yarışı",
      "guestAcceptance": "ESHUTDOWN eski işlerin sonucunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_quiesce_positive",
        "negativeName": "os_shutdown_io_quiesce_negative",
        "expectedMarker": "TURKOS/OS/K2145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Shutdown sonrası yeni write alınmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yeni client write yarışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2141"
    },
    {
      "id": "K2142",
      "number": 2142,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.quiesce",
      "stage": "implementation",
      "title": "Yeni yazı kabulünü durdurma · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Shutdown sonrası yeni write alınmaz.",
      "action": "kernel/src/runtime/shutdown_io.rs hedefinde os_shutdown_io_quiesce yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Shutdown sonrası yeni write alınmaz",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_quiesce"
      },
      "dependencies": [
        "K2141"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Mevcut iki write drain",
      "counterexample": "Yeni client write yarışı",
      "guestAcceptance": "ESHUTDOWN eski işlerin sonucunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_quiesce_positive",
        "negativeName": "os_shutdown_io_quiesce_negative",
        "expectedMarker": "TURKOS/OS/K2145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Mevcut iki write drain ile Yeni client write yarışı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yeni client write yarışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2142"
    },
    {
      "id": "K2143",
      "number": 2143,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.quiesce",
      "stage": "positive",
      "title": "Yeni yazı kabulünü durdurma · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Shutdown sonrası yeni write alınmaz.",
      "action": "os_shutdown_io_quiesce_positive testini oluştur: “Mevcut iki write drain”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Shutdown sonrası yeni write alınmaz",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_quiesce"
      },
      "dependencies": [
        "K2142"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Mevcut iki write drain",
      "counterexample": "Yeni client write yarışı",
      "guestAcceptance": "ESHUTDOWN eski işlerin sonucunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_quiesce_positive",
        "negativeName": "os_shutdown_io_quiesce_negative",
        "expectedMarker": "TURKOS/OS/K2145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Mevcut iki write drain girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yeni client write yarışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2143"
    },
    {
      "id": "K2144",
      "number": 2144,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.quiesce",
      "stage": "negative",
      "title": "Yeni yazı kabulünü durdurma · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Shutdown sonrası yeni write alınmaz.",
      "action": "os_shutdown_io_quiesce_negative testini oluştur: “Yeni client write yarışı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Shutdown sonrası yeni write alınmaz",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_quiesce"
      },
      "dependencies": [
        "K2143"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Mevcut iki write drain",
      "counterexample": "Yeni client write yarışı",
      "guestAcceptance": "ESHUTDOWN eski işlerin sonucunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_quiesce_positive",
        "negativeName": "os_shutdown_io_quiesce_negative",
        "expectedMarker": "TURKOS/OS/K2145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni client write yarışı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yeni client write yarışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2144"
    },
    {
      "id": "K2145",
      "number": 2145,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.quiesce",
      "stage": "integration",
      "title": "Yeni yazı kabulünü durdurma · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Shutdown sonrası yeni write alınmaz.",
      "action": "Tek ürün Image'ında “ESHUTDOWN eski işlerin sonucunu korur” kabulünü koştur. scripts/os-acceptance/shutdown_io.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Shutdown sonrası yeni write alınmaz",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_quiesce"
      },
      "dependencies": [
        "K2144"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Mevcut iki write drain",
      "counterexample": "Yeni client write yarışı",
      "guestAcceptance": "ESHUTDOWN eski işlerin sonucunu korur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_quiesce_positive",
        "negativeName": "os_shutdown_io_quiesce_negative",
        "expectedMarker": "TURKOS/OS/K2145: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "ESHUTDOWN eski işlerin sonucunu korur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yeni client write yarışı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2145"
    },
    {
      "id": "K2146",
      "number": 2146,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.flush",
      "stage": "contract",
      "title": "Kapanış flush kabulü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tamamlanan flush ile süreç quit ayrıdır.",
      "action": "“Kapanış flush kabulü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Tamamlanan flush ile süreç quit ayrıdır. “Data metadata journal flush” kabulü ile “Flush EIO veya timeout” reddini aynı sözleşmeye bağla.",
      "invariant": "Tamamlanan flush ile süreç quit ayrıdır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_flush"
      },
      "dependencies": [
        "K2145"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Data metadata journal flush",
      "counterexample": "Flush EIO veya timeout",
      "guestAcceptance": "Clean shutdown etiketi verilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_flush_positive",
        "negativeName": "os_shutdown_io_flush_negative",
        "expectedMarker": "TURKOS/OS/K2150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Tamamlanan flush ile süreç quit ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Flush EIO veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2146"
    },
    {
      "id": "K2147",
      "number": 2147,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.flush",
      "stage": "implementation",
      "title": "Kapanış flush kabulü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tamamlanan flush ile süreç quit ayrıdır.",
      "action": "kernel/src/runtime/shutdown_io.rs hedefinde os_shutdown_io_flush yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Tamamlanan flush ile süreç quit ayrıdır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_flush"
      },
      "dependencies": [
        "K2146"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Data metadata journal flush",
      "counterexample": "Flush EIO veya timeout",
      "guestAcceptance": "Clean shutdown etiketi verilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_flush_positive",
        "negativeName": "os_shutdown_io_flush_negative",
        "expectedMarker": "TURKOS/OS/K2150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Data metadata journal flush ile Flush EIO veya timeout ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Flush EIO veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2147"
    },
    {
      "id": "K2148",
      "number": 2148,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.flush",
      "stage": "positive",
      "title": "Kapanış flush kabulü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tamamlanan flush ile süreç quit ayrıdır.",
      "action": "os_shutdown_io_flush_positive testini oluştur: “Data metadata journal flush”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Tamamlanan flush ile süreç quit ayrıdır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_flush"
      },
      "dependencies": [
        "K2147"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Data metadata journal flush",
      "counterexample": "Flush EIO veya timeout",
      "guestAcceptance": "Clean shutdown etiketi verilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_flush_positive",
        "negativeName": "os_shutdown_io_flush_negative",
        "expectedMarker": "TURKOS/OS/K2150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Data metadata journal flush girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Flush EIO veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2148"
    },
    {
      "id": "K2149",
      "number": 2149,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.flush",
      "stage": "negative",
      "title": "Kapanış flush kabulü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tamamlanan flush ile süreç quit ayrıdır.",
      "action": "os_shutdown_io_flush_negative testini oluştur: “Flush EIO veya timeout”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Tamamlanan flush ile süreç quit ayrıdır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_flush"
      },
      "dependencies": [
        "K2148"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Data metadata journal flush",
      "counterexample": "Flush EIO veya timeout",
      "guestAcceptance": "Clean shutdown etiketi verilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_flush_positive",
        "negativeName": "os_shutdown_io_flush_negative",
        "expectedMarker": "TURKOS/OS/K2150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Flush EIO veya timeout karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Flush EIO veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2149"
    },
    {
      "id": "K2150",
      "number": 2150,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.flush",
      "stage": "integration",
      "title": "Kapanış flush kabulü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tamamlanan flush ile süreç quit ayrıdır.",
      "action": "Tek ürün Image'ında “Clean shutdown etiketi verilmez” kabulünü koştur. scripts/os-acceptance/shutdown_io.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Tamamlanan flush ile süreç quit ayrıdır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_flush"
      },
      "dependencies": [
        "K2149"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Data metadata journal flush",
      "counterexample": "Flush EIO veya timeout",
      "guestAcceptance": "Clean shutdown etiketi verilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_flush_positive",
        "negativeName": "os_shutdown_io_flush_negative",
        "expectedMarker": "TURKOS/OS/K2150: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Clean shutdown etiketi verilmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Flush EIO veya timeout” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2150"
    },
    {
      "id": "K2151",
      "number": 2151,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.leases",
      "stage": "contract",
      "title": "IRQ DMA thread drain · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Her aygıt reset ve lease ömrü kapanır.",
      "action": "“IRQ DMA thread drain” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her aygıt reset ve lease ömrü kapanır. “Aktif network ve disk queues” kabulü ile “DMA canlıyken owner free” reddini aynı sözleşmeye bağla.",
      "invariant": "Her aygıt reset ve lease ömrü kapanır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_leases"
      },
      "dependencies": [
        "K2150"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Aktif network ve disk queues",
      "counterexample": "DMA canlıyken owner free",
      "guestAcceptance": "Kapanış muhasebesi sıfır veya açık held",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_leases_positive",
        "negativeName": "os_shutdown_io_leases_negative",
        "expectedMarker": "TURKOS/OS/K2155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her aygıt reset ve lease ömrü kapanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“DMA canlıyken owner free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2151"
    },
    {
      "id": "K2152",
      "number": 2152,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.leases",
      "stage": "implementation",
      "title": "IRQ DMA thread drain · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Her aygıt reset ve lease ömrü kapanır.",
      "action": "kernel/src/runtime/shutdown_io.rs hedefinde os_shutdown_io_leases yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her aygıt reset ve lease ömrü kapanır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_leases"
      },
      "dependencies": [
        "K2151"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Aktif network ve disk queues",
      "counterexample": "DMA canlıyken owner free",
      "guestAcceptance": "Kapanış muhasebesi sıfır veya açık held",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_leases_positive",
        "negativeName": "os_shutdown_io_leases_negative",
        "expectedMarker": "TURKOS/OS/K2155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aktif network ve disk queues ile DMA canlıyken owner free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“DMA canlıyken owner free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2152"
    },
    {
      "id": "K2153",
      "number": 2153,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.leases",
      "stage": "positive",
      "title": "IRQ DMA thread drain · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Her aygıt reset ve lease ömrü kapanır.",
      "action": "os_shutdown_io_leases_positive testini oluştur: “Aktif network ve disk queues”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her aygıt reset ve lease ömrü kapanır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_leases"
      },
      "dependencies": [
        "K2152"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Aktif network ve disk queues",
      "counterexample": "DMA canlıyken owner free",
      "guestAcceptance": "Kapanış muhasebesi sıfır veya açık held",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_leases_positive",
        "negativeName": "os_shutdown_io_leases_negative",
        "expectedMarker": "TURKOS/OS/K2155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aktif network ve disk queues girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“DMA canlıyken owner free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2153"
    },
    {
      "id": "K2154",
      "number": 2154,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.leases",
      "stage": "negative",
      "title": "IRQ DMA thread drain · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Her aygıt reset ve lease ömrü kapanır.",
      "action": "os_shutdown_io_leases_negative testini oluştur: “DMA canlıyken owner free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her aygıt reset ve lease ömrü kapanır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_leases"
      },
      "dependencies": [
        "K2153"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Aktif network ve disk queues",
      "counterexample": "DMA canlıyken owner free",
      "guestAcceptance": "Kapanış muhasebesi sıfır veya açık held",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_leases_positive",
        "negativeName": "os_shutdown_io_leases_negative",
        "expectedMarker": "TURKOS/OS/K2155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "DMA canlıyken owner free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“DMA canlıyken owner free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2154"
    },
    {
      "id": "K2155",
      "number": 2155,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.leases",
      "stage": "integration",
      "title": "IRQ DMA thread drain · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Her aygıt reset ve lease ömrü kapanır.",
      "action": "Tek ürün Image'ında “Kapanış muhasebesi sıfır veya açık held” kabulünü koştur. scripts/os-acceptance/shutdown_io.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her aygıt reset ve lease ömrü kapanır",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_leases"
      },
      "dependencies": [
        "K2154"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Aktif network ve disk queues",
      "counterexample": "DMA canlıyken owner free",
      "guestAcceptance": "Kapanış muhasebesi sıfır veya açık held",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_leases_positive",
        "negativeName": "os_shutdown_io_leases_negative",
        "expectedMarker": "TURKOS/OS/K2155: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kapanış muhasebesi sıfır veya açık held; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“DMA canlıyken owner free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2155"
    },
    {
      "id": "K2156",
      "number": 2156,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.reopen",
      "stage": "contract",
      "title": "Yeni boot dosya hash kabulü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Yeni süreç cache olmadan diski okur.",
      "action": "“Yeni boot dosya hash kabulü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yeni süreç cache olmadan diski okur. “Shutdown sonra ikinci konuk” kabulü ile “Aynı süreçten cache okuması” reddini aynı sözleşmeye bağla.",
      "invariant": "Yeni süreç cache olmadan diski okur",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_reopen"
      },
      "dependencies": [
        "K2155"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shutdown sonra ikinci konuk",
      "counterexample": "Aynı süreçten cache okuması",
      "guestAcceptance": "Kaynak ve mantıksal dosya hashleri eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_reopen_positive",
        "negativeName": "os_shutdown_io_reopen_negative",
        "expectedMarker": "TURKOS/OS/K2160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yeni süreç cache olmadan diski okur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Aynı süreçten cache okuması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2156"
    },
    {
      "id": "K2157",
      "number": 2157,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.reopen",
      "stage": "implementation",
      "title": "Yeni boot dosya hash kabulü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Yeni süreç cache olmadan diski okur.",
      "action": "kernel/src/runtime/shutdown_io.rs hedefinde os_shutdown_io_reopen yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_disk.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yeni süreç cache olmadan diski okur",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_reopen"
      },
      "dependencies": [
        "K2156"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shutdown sonra ikinci konuk",
      "counterexample": "Aynı süreçten cache okuması",
      "guestAcceptance": "Kaynak ve mantıksal dosya hashleri eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_reopen_positive",
        "negativeName": "os_shutdown_io_reopen_negative",
        "expectedMarker": "TURKOS/OS/K2160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Shutdown sonra ikinci konuk ile Aynı süreçten cache okuması ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Aynı süreçten cache okuması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2157"
    },
    {
      "id": "K2158",
      "number": 2158,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.reopen",
      "stage": "positive",
      "title": "Yeni boot dosya hash kabulü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Yeni süreç cache olmadan diski okur.",
      "action": "os_shutdown_io_reopen_positive testini oluştur: “Shutdown sonra ikinci konuk”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yeni süreç cache olmadan diski okur",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_reopen"
      },
      "dependencies": [
        "K2157"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shutdown sonra ikinci konuk",
      "counterexample": "Aynı süreçten cache okuması",
      "guestAcceptance": "Kaynak ve mantıksal dosya hashleri eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_reopen_positive",
        "negativeName": "os_shutdown_io_reopen_negative",
        "expectedMarker": "TURKOS/OS/K2160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Shutdown sonra ikinci konuk girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Aynı süreçten cache okuması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2158"
    },
    {
      "id": "K2159",
      "number": 2159,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.reopen",
      "stage": "negative",
      "title": "Yeni boot dosya hash kabulü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Yeni süreç cache olmadan diski okur.",
      "action": "os_shutdown_io_reopen_negative testini oluştur: “Aynı süreçten cache okuması”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yeni süreç cache olmadan diski okur",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_reopen"
      },
      "dependencies": [
        "K2158"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shutdown sonra ikinci konuk",
      "counterexample": "Aynı süreçten cache okuması",
      "guestAcceptance": "Kaynak ve mantıksal dosya hashleri eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_reopen_positive",
        "negativeName": "os_shutdown_io_reopen_negative",
        "expectedMarker": "TURKOS/OS/K2160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aynı süreçten cache okuması karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Aynı süreçten cache okuması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2159"
    },
    {
      "id": "K2160",
      "number": 2160,
      "phase": 16,
      "module": "shutdown_io",
      "feature": "shutdown_io.reopen",
      "stage": "integration",
      "title": "Yeni boot dosya hash kabulü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Yeni süreç cache olmadan diski okur.",
      "action": "Tek ürün Image'ında “Kaynak ve mantıksal dosya hashleri eşleşir” kabulünü koştur. scripts/os-acceptance/shutdown_io.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yeni süreç cache olmadan diski okur",
      "source": {
        "target": "kernel/src/runtime/shutdown_io.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_disk.rs",
        "existingReferenceSha256": "c9bce1e1d7d9abc70c4920f62fa22e2a304d823b0b5af6a5b2281cee74fe78f0",
        "symbol": "os_shutdown_io_reopen"
      },
      "dependencies": [
        "K2159"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Shutdown sonra ikinci konuk",
      "counterexample": "Aynı süreçten cache okuması",
      "guestAcceptance": "Kaynak ve mantıksal dosya hashleri eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/shutdown_io.rs",
        "harness": "scripts/os-acceptance/shutdown_io.mjs",
        "positiveName": "os_shutdown_io_reopen_positive",
        "negativeName": "os_shutdown_io_reopen_negative",
        "expectedMarker": "TURKOS/OS/K2160: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kaynak ve mantıksal dosya hashleri eşleşir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Aynı süreçten cache okuması” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2160"
    },
    {
      "id": "K2161",
      "number": 2161,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.slots",
      "stage": "contract",
      "title": "A B salt-okunur sürüm yuvası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Etkin yuva güncellemede yazılmaz.",
      "action": "“A B salt-okunur sürüm yuvası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Etkin yuva güncellemede yazılmaz. “Geçici diskte B yeni imaj” kabulü ile “A üzerine incomplete update” reddini aynı sözleşmeye bağla.",
      "invariant": "Etkin yuva güncellemede yazılmaz",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_slots"
      },
      "dependencies": [
        "K2160"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçici diskte B yeni imaj",
      "counterexample": "A üzerine incomplete update",
      "guestAcceptance": "Eski A imaj hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_slots_positive",
        "negativeName": "os_update_slots_slots_negative",
        "expectedMarker": "TURKOS/OS/K2165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Etkin yuva güncellemede yazılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“A üzerine incomplete update” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2161"
    },
    {
      "id": "K2162",
      "number": 2162,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.slots",
      "stage": "implementation",
      "title": "A B salt-okunur sürüm yuvası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Etkin yuva güncellemede yazılmaz.",
      "action": "userspace/src/update_slots.rs hedefinde os_update_slots_slots yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Etkin yuva güncellemede yazılmaz",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_slots"
      },
      "dependencies": [
        "K2161"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçici diskte B yeni imaj",
      "counterexample": "A üzerine incomplete update",
      "guestAcceptance": "Eski A imaj hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_slots_positive",
        "negativeName": "os_update_slots_slots_negative",
        "expectedMarker": "TURKOS/OS/K2165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçici diskte B yeni imaj ile A üzerine incomplete update ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“A üzerine incomplete update” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2162"
    },
    {
      "id": "K2163",
      "number": 2163,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.slots",
      "stage": "positive",
      "title": "A B salt-okunur sürüm yuvası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Etkin yuva güncellemede yazılmaz.",
      "action": "os_update_slots_slots_positive testini oluştur: “Geçici diskte B yeni imaj”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Etkin yuva güncellemede yazılmaz",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_slots"
      },
      "dependencies": [
        "K2162"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçici diskte B yeni imaj",
      "counterexample": "A üzerine incomplete update",
      "guestAcceptance": "Eski A imaj hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_slots_positive",
        "negativeName": "os_update_slots_slots_negative",
        "expectedMarker": "TURKOS/OS/K2165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçici diskte B yeni imaj girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“A üzerine incomplete update” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2163"
    },
    {
      "id": "K2164",
      "number": 2164,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.slots",
      "stage": "negative",
      "title": "A B salt-okunur sürüm yuvası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Etkin yuva güncellemede yazılmaz.",
      "action": "os_update_slots_slots_negative testini oluştur: “A üzerine incomplete update”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Etkin yuva güncellemede yazılmaz",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_slots"
      },
      "dependencies": [
        "K2163"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçici diskte B yeni imaj",
      "counterexample": "A üzerine incomplete update",
      "guestAcceptance": "Eski A imaj hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_slots_positive",
        "negativeName": "os_update_slots_slots_negative",
        "expectedMarker": "TURKOS/OS/K2165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "A üzerine incomplete update karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“A üzerine incomplete update” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2164"
    },
    {
      "id": "K2165",
      "number": 2165,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.slots",
      "stage": "integration",
      "title": "A B salt-okunur sürüm yuvası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Etkin yuva güncellemede yazılmaz.",
      "action": "Tek ürün Image'ında “Eski A imaj hash sabit” kabulünü koştur. scripts/os-acceptance/update_slots.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Etkin yuva güncellemede yazılmaz",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_slots"
      },
      "dependencies": [
        "K2164"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçici diskte B yeni imaj",
      "counterexample": "A üzerine incomplete update",
      "guestAcceptance": "Eski A imaj hash sabit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_slots_positive",
        "negativeName": "os_update_slots_slots_negative",
        "expectedMarker": "TURKOS/OS/K2165: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski A imaj hash sabit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“A üzerine incomplete update” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2165"
    },
    {
      "id": "K2166",
      "number": 2166,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.verify",
      "stage": "contract",
      "title": "Yeni yuva imaj doğrulama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Manifest hash imza boy birlikte geçer.",
      "action": "“Yeni yuva imaj doğrulama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Manifest hash imza boy birlikte geçer. “Geçerli B payload” kabulü ile “Yarım download veya bozuk signature” reddini aynı sözleşmeye bağla.",
      "invariant": "Manifest hash imza boy birlikte geçer",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_verify"
      },
      "dependencies": [
        "K2165"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçerli B payload",
      "counterexample": "Yarım download veya bozuk signature",
      "guestAcceptance": "B boot adayı yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_verify_positive",
        "negativeName": "os_update_slots_verify_negative",
        "expectedMarker": "TURKOS/OS/K2170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Manifest hash imza boy birlikte geçer kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yarım download veya bozuk signature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2166"
    },
    {
      "id": "K2167",
      "number": 2167,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.verify",
      "stage": "implementation",
      "title": "Yeni yuva imaj doğrulama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Manifest hash imza boy birlikte geçer.",
      "action": "userspace/src/update_slots.rs hedefinde os_update_slots_verify yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Manifest hash imza boy birlikte geçer",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_verify"
      },
      "dependencies": [
        "K2166"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçerli B payload",
      "counterexample": "Yarım download veya bozuk signature",
      "guestAcceptance": "B boot adayı yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_verify_positive",
        "negativeName": "os_update_slots_verify_negative",
        "expectedMarker": "TURKOS/OS/K2170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçerli B payload ile Yarım download veya bozuk signature ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yarım download veya bozuk signature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2167"
    },
    {
      "id": "K2168",
      "number": 2168,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.verify",
      "stage": "positive",
      "title": "Yeni yuva imaj doğrulama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Manifest hash imza boy birlikte geçer.",
      "action": "os_update_slots_verify_positive testini oluştur: “Geçerli B payload”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Manifest hash imza boy birlikte geçer",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_verify"
      },
      "dependencies": [
        "K2167"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçerli B payload",
      "counterexample": "Yarım download veya bozuk signature",
      "guestAcceptance": "B boot adayı yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_verify_positive",
        "negativeName": "os_update_slots_verify_negative",
        "expectedMarker": "TURKOS/OS/K2170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçerli B payload girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yarım download veya bozuk signature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2168"
    },
    {
      "id": "K2169",
      "number": 2169,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.verify",
      "stage": "negative",
      "title": "Yeni yuva imaj doğrulama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Manifest hash imza boy birlikte geçer.",
      "action": "os_update_slots_verify_negative testini oluştur: “Yarım download veya bozuk signature”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Manifest hash imza boy birlikte geçer",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_verify"
      },
      "dependencies": [
        "K2168"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçerli B payload",
      "counterexample": "Yarım download veya bozuk signature",
      "guestAcceptance": "B boot adayı yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_verify_positive",
        "negativeName": "os_update_slots_verify_negative",
        "expectedMarker": "TURKOS/OS/K2170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yarım download veya bozuk signature karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yarım download veya bozuk signature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2169"
    },
    {
      "id": "K2170",
      "number": 2170,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.verify",
      "stage": "integration",
      "title": "Yeni yuva imaj doğrulama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Manifest hash imza boy birlikte geçer.",
      "action": "Tek ürün Image'ında “B boot adayı yayımlanmaz” kabulünü koştur. scripts/os-acceptance/update_slots.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Manifest hash imza boy birlikte geçer",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_verify"
      },
      "dependencies": [
        "K2169"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Geçerli B payload",
      "counterexample": "Yarım download veya bozuk signature",
      "guestAcceptance": "B boot adayı yayımlanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_verify_positive",
        "negativeName": "os_update_slots_verify_negative",
        "expectedMarker": "TURKOS/OS/K2170: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "B boot adayı yayımlanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yarım download veya bozuk signature” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2170"
    },
    {
      "id": "K2171",
      "number": 2171,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.boot_choice",
      "stage": "contract",
      "title": "Sınırlı boot seçim kaydı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Seçim byteı tek başına güven kökü değildir.",
      "action": "“Sınırlı boot seçim kaydı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Seçim byteı tek başına güven kökü değildir. “A fallback B candidate” kabulü ile “Seçim kaydı bozuk” reddini aynı sözleşmeye bağla.",
      "invariant": "Seçim byteı tek başına güven kökü değildir",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_boot_choice"
      },
      "dependencies": [
        "K2170"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "A fallback B candidate",
      "counterexample": "Seçim kaydı bozuk",
      "guestAcceptance": "Recovery RO karar ve sınırı yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_boot_choice_positive",
        "negativeName": "os_update_slots_boot_choice_negative",
        "expectedMarker": "TURKOS/OS/K2175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Seçim byteı tek başına güven kökü değildir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Seçim kaydı bozuk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2171"
    },
    {
      "id": "K2172",
      "number": 2172,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.boot_choice",
      "stage": "implementation",
      "title": "Sınırlı boot seçim kaydı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Seçim byteı tek başına güven kökü değildir.",
      "action": "userspace/src/update_slots.rs hedefinde os_update_slots_boot_choice yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Seçim byteı tek başına güven kökü değildir",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_boot_choice"
      },
      "dependencies": [
        "K2171"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "A fallback B candidate",
      "counterexample": "Seçim kaydı bozuk",
      "guestAcceptance": "Recovery RO karar ve sınırı yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_boot_choice_positive",
        "negativeName": "os_update_slots_boot_choice_negative",
        "expectedMarker": "TURKOS/OS/K2175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. A fallback B candidate ile Seçim kaydı bozuk ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Seçim kaydı bozuk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2172"
    },
    {
      "id": "K2173",
      "number": 2173,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.boot_choice",
      "stage": "positive",
      "title": "Sınırlı boot seçim kaydı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Seçim byteı tek başına güven kökü değildir.",
      "action": "os_update_slots_boot_choice_positive testini oluştur: “A fallback B candidate”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Seçim byteı tek başına güven kökü değildir",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_boot_choice"
      },
      "dependencies": [
        "K2172"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "A fallback B candidate",
      "counterexample": "Seçim kaydı bozuk",
      "guestAcceptance": "Recovery RO karar ve sınırı yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_boot_choice_positive",
        "negativeName": "os_update_slots_boot_choice_negative",
        "expectedMarker": "TURKOS/OS/K2175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; A fallback B candidate girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Seçim kaydı bozuk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2173"
    },
    {
      "id": "K2174",
      "number": 2174,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.boot_choice",
      "stage": "negative",
      "title": "Sınırlı boot seçim kaydı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Seçim byteı tek başına güven kökü değildir.",
      "action": "os_update_slots_boot_choice_negative testini oluştur: “Seçim kaydı bozuk”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Seçim byteı tek başına güven kökü değildir",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_boot_choice"
      },
      "dependencies": [
        "K2173"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "A fallback B candidate",
      "counterexample": "Seçim kaydı bozuk",
      "guestAcceptance": "Recovery RO karar ve sınırı yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_boot_choice_positive",
        "negativeName": "os_update_slots_boot_choice_negative",
        "expectedMarker": "TURKOS/OS/K2175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Seçim kaydı bozuk karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Seçim kaydı bozuk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2174"
    },
    {
      "id": "K2175",
      "number": 2175,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.boot_choice",
      "stage": "integration",
      "title": "Sınırlı boot seçim kaydı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Seçim byteı tek başına güven kökü değildir.",
      "action": "Tek ürün Image'ında “Recovery RO karar ve sınırı yazar” kabulünü koştur. scripts/os-acceptance/update_slots.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Seçim byteı tek başına güven kökü değildir",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_boot_choice"
      },
      "dependencies": [
        "K2174"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "A fallback B candidate",
      "counterexample": "Seçim kaydı bozuk",
      "guestAcceptance": "Recovery RO karar ve sınırı yazar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_boot_choice_positive",
        "negativeName": "os_update_slots_boot_choice_negative",
        "expectedMarker": "TURKOS/OS/K2175: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Recovery RO karar ve sınırı yazar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Seçim kaydı bozuk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2175"
    },
    {
      "id": "K2176",
      "number": 2176,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.rollback",
      "stage": "contract",
      "title": "Başarısız sürüm geri dönüşü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Rollback ile antirollback çelişkisi açık ele alınır.",
      "action": "“Başarısız sürüm geri dönüşü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Rollback ile antirollback çelişkisi açık ele alınır. “B health veremez” kabulü ile “Eski vulnerable A otomatik seçilir” reddini aynı sözleşmeye bağla.",
      "invariant": "Rollback ile antirollback çelişkisi açık ele alınır",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_rollback"
      },
      "dependencies": [
        "K2175"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "B health veremez",
      "counterexample": "Eski vulnerable A otomatik seçilir",
      "guestAcceptance": "Politika güvenli fallback veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_rollback_positive",
        "negativeName": "os_update_slots_rollback_negative",
        "expectedMarker": "TURKOS/OS/K2180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Rollback ile antirollback çelişkisi açık ele alınır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski vulnerable A otomatik seçilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2176"
    },
    {
      "id": "K2177",
      "number": 2177,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.rollback",
      "stage": "implementation",
      "title": "Başarısız sürüm geri dönüşü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Rollback ile antirollback çelişkisi açık ele alınır.",
      "action": "userspace/src/update_slots.rs hedefinde os_update_slots_rollback yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Rollback ile antirollback çelişkisi açık ele alınır",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_rollback"
      },
      "dependencies": [
        "K2176"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "B health veremez",
      "counterexample": "Eski vulnerable A otomatik seçilir",
      "guestAcceptance": "Politika güvenli fallback veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_rollback_positive",
        "negativeName": "os_update_slots_rollback_negative",
        "expectedMarker": "TURKOS/OS/K2180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. B health veremez ile Eski vulnerable A otomatik seçilir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski vulnerable A otomatik seçilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2177"
    },
    {
      "id": "K2178",
      "number": 2178,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.rollback",
      "stage": "positive",
      "title": "Başarısız sürüm geri dönüşü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Rollback ile antirollback çelişkisi açık ele alınır.",
      "action": "os_update_slots_rollback_positive testini oluştur: “B health veremez”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Rollback ile antirollback çelişkisi açık ele alınır",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_rollback"
      },
      "dependencies": [
        "K2177"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "B health veremez",
      "counterexample": "Eski vulnerable A otomatik seçilir",
      "guestAcceptance": "Politika güvenli fallback veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_rollback_positive",
        "negativeName": "os_update_slots_rollback_negative",
        "expectedMarker": "TURKOS/OS/K2180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; B health veremez girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski vulnerable A otomatik seçilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2178"
    },
    {
      "id": "K2179",
      "number": 2179,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.rollback",
      "stage": "negative",
      "title": "Başarısız sürüm geri dönüşü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Rollback ile antirollback çelişkisi açık ele alınır.",
      "action": "os_update_slots_rollback_negative testini oluştur: “Eski vulnerable A otomatik seçilir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Rollback ile antirollback çelişkisi açık ele alınır",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_rollback"
      },
      "dependencies": [
        "K2178"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "B health veremez",
      "counterexample": "Eski vulnerable A otomatik seçilir",
      "guestAcceptance": "Politika güvenli fallback veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_rollback_positive",
        "negativeName": "os_update_slots_rollback_negative",
        "expectedMarker": "TURKOS/OS/K2180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski vulnerable A otomatik seçilir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski vulnerable A otomatik seçilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2179"
    },
    {
      "id": "K2180",
      "number": 2180,
      "phase": 16,
      "module": "update_slots",
      "feature": "update_slots.rollback",
      "stage": "integration",
      "title": "Başarısız sürüm geri dönüşü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Rollback ile antirollback çelişkisi açık ele alınır.",
      "action": "Tek ürün Image'ında “Politika güvenli fallback veya açık ret” kabulünü koştur. scripts/os-acceptance/update_slots.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Rollback ile antirollback çelişkisi açık ele alınır",
      "source": {
        "target": "userspace/src/update_slots.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_update_slots_rollback"
      },
      "dependencies": [
        "K2179"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "B health veremez",
      "counterexample": "Eski vulnerable A otomatik seçilir",
      "guestAcceptance": "Politika güvenli fallback veya açık ret",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/update_slots.rs",
        "harness": "scripts/os-acceptance/update_slots.mjs",
        "positiveName": "os_update_slots_rollback_positive",
        "negativeName": "os_update_slots_rollback_negative",
        "expectedMarker": "TURKOS/OS/K2180: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Politika güvenli fallback veya açık ret; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski vulnerable A otomatik seçilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2180"
    },
    {
      "id": "K2181",
      "number": 2181,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.entry",
      "stage": "contract",
      "title": "Kurtarma moduna yetkili giriş · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kurtarma otomatik yetki yükseltmez.",
      "action": "“Kurtarma moduna yetkili giriş” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kurtarma otomatik yetki yükseltmez. “Açık operatör seçimi” kabulü ile “Normal kullanıcı recovery ister” reddini aynı sözleşmeye bağla.",
      "invariant": "Kurtarma otomatik yetki yükseltmez",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_entry"
      },
      "dependencies": [
        "K2180"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Açık operatör seçimi",
      "counterexample": "Normal kullanıcı recovery ister",
      "guestAcceptance": "Yetkisiz istek kernel debug açmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_entry_positive",
        "negativeName": "os_recovery_mode_entry_negative",
        "expectedMarker": "TURKOS/OS/K2185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kurtarma otomatik yetki yükseltmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Normal kullanıcı recovery ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2181"
    },
    {
      "id": "K2182",
      "number": 2182,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.entry",
      "stage": "implementation",
      "title": "Kurtarma moduna yetkili giriş · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kurtarma otomatik yetki yükseltmez.",
      "action": "userspace/src/recovery_mode.rs hedefinde os_recovery_mode_entry yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kurtarma otomatik yetki yükseltmez",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_entry"
      },
      "dependencies": [
        "K2181"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Açık operatör seçimi",
      "counterexample": "Normal kullanıcı recovery ister",
      "guestAcceptance": "Yetkisiz istek kernel debug açmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_entry_positive",
        "negativeName": "os_recovery_mode_entry_negative",
        "expectedMarker": "TURKOS/OS/K2185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Açık operatör seçimi ile Normal kullanıcı recovery ister ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Normal kullanıcı recovery ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2182"
    },
    {
      "id": "K2183",
      "number": 2183,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.entry",
      "stage": "positive",
      "title": "Kurtarma moduna yetkili giriş · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kurtarma otomatik yetki yükseltmez.",
      "action": "os_recovery_mode_entry_positive testini oluştur: “Açık operatör seçimi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kurtarma otomatik yetki yükseltmez",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_entry"
      },
      "dependencies": [
        "K2182"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Açık operatör seçimi",
      "counterexample": "Normal kullanıcı recovery ister",
      "guestAcceptance": "Yetkisiz istek kernel debug açmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_entry_positive",
        "negativeName": "os_recovery_mode_entry_negative",
        "expectedMarker": "TURKOS/OS/K2185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Açık operatör seçimi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Normal kullanıcı recovery ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2183"
    },
    {
      "id": "K2184",
      "number": 2184,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.entry",
      "stage": "negative",
      "title": "Kurtarma moduna yetkili giriş · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kurtarma otomatik yetki yükseltmez.",
      "action": "os_recovery_mode_entry_negative testini oluştur: “Normal kullanıcı recovery ister”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kurtarma otomatik yetki yükseltmez",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_entry"
      },
      "dependencies": [
        "K2183"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Açık operatör seçimi",
      "counterexample": "Normal kullanıcı recovery ister",
      "guestAcceptance": "Yetkisiz istek kernel debug açmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_entry_positive",
        "negativeName": "os_recovery_mode_entry_negative",
        "expectedMarker": "TURKOS/OS/K2185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Normal kullanıcı recovery ister karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Normal kullanıcı recovery ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2184"
    },
    {
      "id": "K2185",
      "number": 2185,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.entry",
      "stage": "integration",
      "title": "Kurtarma moduna yetkili giriş · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Kurtarma otomatik yetki yükseltmez.",
      "action": "Tek ürün Image'ında “Yetkisiz istek kernel debug açmaz” kabulünü koştur. scripts/os-acceptance/recovery_mode.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kurtarma otomatik yetki yükseltmez",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_entry"
      },
      "dependencies": [
        "K2184"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Açık operatör seçimi",
      "counterexample": "Normal kullanıcı recovery ister",
      "guestAcceptance": "Yetkisiz istek kernel debug açmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_entry_positive",
        "negativeName": "os_recovery_mode_entry_negative",
        "expectedMarker": "TURKOS/OS/K2185: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yetkisiz istek kernel debug açmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Normal kullanıcı recovery ister” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2185"
    },
    {
      "id": "K2186",
      "number": 2186,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.readonly",
      "stage": "contract",
      "title": "Recovery salt-okunur mount · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tanı diski onarmadan önce okumakla sınırlıdır.",
      "action": "“Recovery salt-okunur mount” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Tanı diski onarmadan önce okumakla sınırlıdır. “Bozuk journal RO inspect” kabulü ile “Gizli otomatik replay write” reddini aynı sözleşmeye bağla.",
      "invariant": "Tanı diski onarmadan önce okumakla sınırlıdır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_readonly"
      },
      "dependencies": [
        "K2185"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bozuk journal RO inspect",
      "counterexample": "Gizli otomatik replay write",
      "guestAcceptance": "Disk hash tanıda değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_readonly_positive",
        "negativeName": "os_recovery_mode_readonly_negative",
        "expectedMarker": "TURKOS/OS/K2190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Tanı diski onarmadan önce okumakla sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Gizli otomatik replay write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2186"
    },
    {
      "id": "K2187",
      "number": 2187,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.readonly",
      "stage": "implementation",
      "title": "Recovery salt-okunur mount · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tanı diski onarmadan önce okumakla sınırlıdır.",
      "action": "userspace/src/recovery_mode.rs hedefinde os_recovery_mode_readonly yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Tanı diski onarmadan önce okumakla sınırlıdır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_readonly"
      },
      "dependencies": [
        "K2186"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bozuk journal RO inspect",
      "counterexample": "Gizli otomatik replay write",
      "guestAcceptance": "Disk hash tanıda değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_readonly_positive",
        "negativeName": "os_recovery_mode_readonly_negative",
        "expectedMarker": "TURKOS/OS/K2190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bozuk journal RO inspect ile Gizli otomatik replay write ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Gizli otomatik replay write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2187"
    },
    {
      "id": "K2188",
      "number": 2188,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.readonly",
      "stage": "positive",
      "title": "Recovery salt-okunur mount · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tanı diski onarmadan önce okumakla sınırlıdır.",
      "action": "os_recovery_mode_readonly_positive testini oluştur: “Bozuk journal RO inspect”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Tanı diski onarmadan önce okumakla sınırlıdır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_readonly"
      },
      "dependencies": [
        "K2187"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bozuk journal RO inspect",
      "counterexample": "Gizli otomatik replay write",
      "guestAcceptance": "Disk hash tanıda değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_readonly_positive",
        "negativeName": "os_recovery_mode_readonly_negative",
        "expectedMarker": "TURKOS/OS/K2190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bozuk journal RO inspect girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Gizli otomatik replay write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2188"
    },
    {
      "id": "K2189",
      "number": 2189,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.readonly",
      "stage": "negative",
      "title": "Recovery salt-okunur mount · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tanı diski onarmadan önce okumakla sınırlıdır.",
      "action": "os_recovery_mode_readonly_negative testini oluştur: “Gizli otomatik replay write”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Tanı diski onarmadan önce okumakla sınırlıdır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_readonly"
      },
      "dependencies": [
        "K2188"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bozuk journal RO inspect",
      "counterexample": "Gizli otomatik replay write",
      "guestAcceptance": "Disk hash tanıda değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_readonly_positive",
        "negativeName": "os_recovery_mode_readonly_negative",
        "expectedMarker": "TURKOS/OS/K2190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Gizli otomatik replay write karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Gizli otomatik replay write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2189"
    },
    {
      "id": "K2190",
      "number": 2190,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.readonly",
      "stage": "integration",
      "title": "Recovery salt-okunur mount · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Tanı diski onarmadan önce okumakla sınırlıdır.",
      "action": "Tek ürün Image'ında “Disk hash tanıda değişmez” kabulünü koştur. scripts/os-acceptance/recovery_mode.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Tanı diski onarmadan önce okumakla sınırlıdır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_readonly"
      },
      "dependencies": [
        "K2189"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bozuk journal RO inspect",
      "counterexample": "Gizli otomatik replay write",
      "guestAcceptance": "Disk hash tanıda değişmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_readonly_positive",
        "negativeName": "os_recovery_mode_readonly_negative",
        "expectedMarker": "TURKOS/OS/K2190: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Disk hash tanıda değişmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Gizli otomatik replay write” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2190"
    },
    {
      "id": "K2191",
      "number": 2191,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.export",
      "stage": "contract",
      "title": "Hashli tanı paketi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Paket boot araç hash ve sınırları taşır.",
      "action": "“Hashli tanı paketi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Paket boot araç hash ve sınırları taşır. “Bir başarı bir fail log” kabulü ile “Kişisel sır veya yanlış image hash” reddini aynı sözleşmeye bağla.",
      "invariant": "Paket boot araç hash ve sınırları taşır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_export"
      },
      "dependencies": [
        "K2190"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bir başarı bir fail log",
      "counterexample": "Kişisel sır veya yanlış image hash",
      "guestAcceptance": "Redaction ve referans bağı sınanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_export_positive",
        "negativeName": "os_recovery_mode_export_negative",
        "expectedMarker": "TURKOS/OS/K2195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Paket boot araç hash ve sınırları taşır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kişisel sır veya yanlış image hash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2191"
    },
    {
      "id": "K2192",
      "number": 2192,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.export",
      "stage": "implementation",
      "title": "Hashli tanı paketi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Paket boot araç hash ve sınırları taşır.",
      "action": "userspace/src/recovery_mode.rs hedefinde os_recovery_mode_export yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Paket boot araç hash ve sınırları taşır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_export"
      },
      "dependencies": [
        "K2191"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bir başarı bir fail log",
      "counterexample": "Kişisel sır veya yanlış image hash",
      "guestAcceptance": "Redaction ve referans bağı sınanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_export_positive",
        "negativeName": "os_recovery_mode_export_negative",
        "expectedMarker": "TURKOS/OS/K2195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir başarı bir fail log ile Kişisel sır veya yanlış image hash ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kişisel sır veya yanlış image hash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2192"
    },
    {
      "id": "K2193",
      "number": 2193,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.export",
      "stage": "positive",
      "title": "Hashli tanı paketi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Paket boot araç hash ve sınırları taşır.",
      "action": "os_recovery_mode_export_positive testini oluştur: “Bir başarı bir fail log”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Paket boot araç hash ve sınırları taşır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_export"
      },
      "dependencies": [
        "K2192"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bir başarı bir fail log",
      "counterexample": "Kişisel sır veya yanlış image hash",
      "guestAcceptance": "Redaction ve referans bağı sınanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_export_positive",
        "negativeName": "os_recovery_mode_export_negative",
        "expectedMarker": "TURKOS/OS/K2195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir başarı bir fail log girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kişisel sır veya yanlış image hash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2193"
    },
    {
      "id": "K2194",
      "number": 2194,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.export",
      "stage": "negative",
      "title": "Hashli tanı paketi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Paket boot araç hash ve sınırları taşır.",
      "action": "os_recovery_mode_export_negative testini oluştur: “Kişisel sır veya yanlış image hash”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Paket boot araç hash ve sınırları taşır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_export"
      },
      "dependencies": [
        "K2193"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bir başarı bir fail log",
      "counterexample": "Kişisel sır veya yanlış image hash",
      "guestAcceptance": "Redaction ve referans bağı sınanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_export_positive",
        "negativeName": "os_recovery_mode_export_negative",
        "expectedMarker": "TURKOS/OS/K2195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kişisel sır veya yanlış image hash karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kişisel sır veya yanlış image hash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2194"
    },
    {
      "id": "K2195",
      "number": 2195,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.export",
      "stage": "integration",
      "title": "Hashli tanı paketi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Paket boot araç hash ve sınırları taşır.",
      "action": "Tek ürün Image'ında “Redaction ve referans bağı sınanır” kabulünü koştur. scripts/os-acceptance/recovery_mode.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Paket boot araç hash ve sınırları taşır",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_export"
      },
      "dependencies": [
        "K2194"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Bir başarı bir fail log",
      "counterexample": "Kişisel sır veya yanlış image hash",
      "guestAcceptance": "Redaction ve referans bağı sınanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_export_positive",
        "negativeName": "os_recovery_mode_export_negative",
        "expectedMarker": "TURKOS/OS/K2195: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Redaction ve referans bağı sınanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kişisel sır veya yanlış image hash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2195"
    },
    {
      "id": "K2196",
      "number": 2196,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.exit",
      "stage": "contract",
      "title": "Kurtarmadan normal boot · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Normal mod yeni runtime nesliyle kurulur.",
      "action": "“Kurtarmadan normal boot” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Normal mod yeni runtime nesliyle kurulur. “Recovery sonra temiz reset” kabulü ile “Eski servis handle mirası” reddini aynı sözleşmeye bağla.",
      "invariant": "Normal mod yeni runtime nesliyle kurulur",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_exit"
      },
      "dependencies": [
        "K2195"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Recovery sonra temiz reset",
      "counterexample": "Eski servis handle mirası",
      "guestAcceptance": "Yeni mod eski yetkileri reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_exit_positive",
        "negativeName": "os_recovery_mode_exit_negative",
        "expectedMarker": "TURKOS/OS/K2200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Normal mod yeni runtime nesliyle kurulur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski servis handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2196"
    },
    {
      "id": "K2197",
      "number": 2197,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.exit",
      "stage": "implementation",
      "title": "Kurtarmadan normal boot · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Normal mod yeni runtime nesliyle kurulur.",
      "action": "userspace/src/recovery_mode.rs hedefinde os_recovery_mode_exit yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Normal mod yeni runtime nesliyle kurulur",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_exit"
      },
      "dependencies": [
        "K2196"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Recovery sonra temiz reset",
      "counterexample": "Eski servis handle mirası",
      "guestAcceptance": "Yeni mod eski yetkileri reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_exit_positive",
        "negativeName": "os_recovery_mode_exit_negative",
        "expectedMarker": "TURKOS/OS/K2200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Recovery sonra temiz reset ile Eski servis handle mirası ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski servis handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2197"
    },
    {
      "id": "K2198",
      "number": 2198,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.exit",
      "stage": "positive",
      "title": "Kurtarmadan normal boot · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Normal mod yeni runtime nesliyle kurulur.",
      "action": "os_recovery_mode_exit_positive testini oluştur: “Recovery sonra temiz reset”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Normal mod yeni runtime nesliyle kurulur",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_exit"
      },
      "dependencies": [
        "K2197"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Recovery sonra temiz reset",
      "counterexample": "Eski servis handle mirası",
      "guestAcceptance": "Yeni mod eski yetkileri reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_exit_positive",
        "negativeName": "os_recovery_mode_exit_negative",
        "expectedMarker": "TURKOS/OS/K2200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Recovery sonra temiz reset girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski servis handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2198"
    },
    {
      "id": "K2199",
      "number": 2199,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.exit",
      "stage": "negative",
      "title": "Kurtarmadan normal boot · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Normal mod yeni runtime nesliyle kurulur.",
      "action": "os_recovery_mode_exit_negative testini oluştur: “Eski servis handle mirası”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Normal mod yeni runtime nesliyle kurulur",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_exit"
      },
      "dependencies": [
        "K2198"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Recovery sonra temiz reset",
      "counterexample": "Eski servis handle mirası",
      "guestAcceptance": "Yeni mod eski yetkileri reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_exit_positive",
        "negativeName": "os_recovery_mode_exit_negative",
        "expectedMarker": "TURKOS/OS/K2200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski servis handle mirası karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski servis handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2199"
    },
    {
      "id": "K2200",
      "number": 2200,
      "phase": 16,
      "module": "recovery_mode",
      "feature": "recovery_mode.exit",
      "stage": "integration",
      "title": "Kurtarmadan normal boot · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host QMP quit ile TurkOS shutdown ayrı olaylardır. Rust PID1 kapanış sırası ve dosya tutarlılığı konuk içinde uygulanır. Bu hamlenin koruduğu değişmez: Normal mod yeni runtime nesliyle kurulur.",
      "action": "Tek ürün Image'ında “Yeni mod eski yetkileri reddeder” kabulünü koştur. scripts/os-acceptance/recovery_mode.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Normal mod yeni runtime nesliyle kurulur",
      "source": {
        "target": "userspace/src/recovery_mode.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_recovery_mode_exit"
      },
      "dependencies": [
        "K2199"
      ],
      "phasePrerequisites": [
        15
      ],
      "positive": "Recovery sonra temiz reset",
      "counterexample": "Eski servis handle mirası",
      "guestAcceptance": "Yeni mod eski yetkileri reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/recovery_mode.rs",
        "harness": "scripts/os-acceptance/recovery_mode.mjs",
        "positiveName": "os_recovery_mode_exit_positive",
        "negativeName": "os_recovery_mode_exit_negative",
        "expectedMarker": "TURKOS/OS/K2200: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni mod eski yetkileri reddeder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski servis handle mirası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-16#k2200"
    },
    {
      "id": "K2201",
      "number": 2201,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.discovery",
      "stage": "contract",
      "title": "GPU feature ve display info · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: GPU absent yolu seri açılışı bozmaz.",
      "action": "“GPU feature ve display info” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: GPU absent yolu seri açılışı bozmaz. “Bir virtio GPU aygıtı” kabulü ile “GPU yok veya feature eksik” reddini aynı sözleşmeye bağla.",
      "invariant": "GPU absent yolu seri açılışı bozmaz",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_discovery"
      },
      "dependencies": [],
      "phasePrerequisites": [
        16
      ],
      "positive": "Bir virtio GPU aygıtı",
      "counterexample": "GPU yok veya feature eksik",
      "guestAcceptance": "Headless runtime çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_discovery_positive",
        "negativeName": "os_virtio_gpu_discovery_negative",
        "expectedMarker": "TURKOS/OS/K2205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu GPU absent yolu seri açılışı bozmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“GPU yok veya feature eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2201"
    },
    {
      "id": "K2202",
      "number": 2202,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.discovery",
      "stage": "implementation",
      "title": "GPU feature ve display info · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: GPU absent yolu seri açılışı bozmaz.",
      "action": "kernel/src/runtime/virtio_gpu.rs hedefinde os_virtio_gpu_discovery yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "GPU absent yolu seri açılışı bozmaz",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_discovery"
      },
      "dependencies": [
        "K2201"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Bir virtio GPU aygıtı",
      "counterexample": "GPU yok veya feature eksik",
      "guestAcceptance": "Headless runtime çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_discovery_positive",
        "negativeName": "os_virtio_gpu_discovery_negative",
        "expectedMarker": "TURKOS/OS/K2205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir virtio GPU aygıtı ile GPU yok veya feature eksik ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“GPU yok veya feature eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2202"
    },
    {
      "id": "K2203",
      "number": 2203,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.discovery",
      "stage": "positive",
      "title": "GPU feature ve display info · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: GPU absent yolu seri açılışı bozmaz.",
      "action": "os_virtio_gpu_discovery_positive testini oluştur: “Bir virtio GPU aygıtı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "GPU absent yolu seri açılışı bozmaz",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_discovery"
      },
      "dependencies": [
        "K2202"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Bir virtio GPU aygıtı",
      "counterexample": "GPU yok veya feature eksik",
      "guestAcceptance": "Headless runtime çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_discovery_positive",
        "negativeName": "os_virtio_gpu_discovery_negative",
        "expectedMarker": "TURKOS/OS/K2205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir virtio GPU aygıtı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“GPU yok veya feature eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2203"
    },
    {
      "id": "K2204",
      "number": 2204,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.discovery",
      "stage": "negative",
      "title": "GPU feature ve display info · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: GPU absent yolu seri açılışı bozmaz.",
      "action": "os_virtio_gpu_discovery_negative testini oluştur: “GPU yok veya feature eksik”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "GPU absent yolu seri açılışı bozmaz",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_discovery"
      },
      "dependencies": [
        "K2203"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Bir virtio GPU aygıtı",
      "counterexample": "GPU yok veya feature eksik",
      "guestAcceptance": "Headless runtime çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_discovery_positive",
        "negativeName": "os_virtio_gpu_discovery_negative",
        "expectedMarker": "TURKOS/OS/K2205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "GPU yok veya feature eksik karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“GPU yok veya feature eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2204"
    },
    {
      "id": "K2205",
      "number": 2205,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.discovery",
      "stage": "integration",
      "title": "GPU feature ve display info · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: GPU absent yolu seri açılışı bozmaz.",
      "action": "Tek ürün Image'ında “Headless runtime çalışmaya devam” kabulünü koştur. scripts/os-acceptance/virtio_gpu.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "GPU absent yolu seri açılışı bozmaz",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_discovery"
      },
      "dependencies": [
        "K2204"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Bir virtio GPU aygıtı",
      "counterexample": "GPU yok veya feature eksik",
      "guestAcceptance": "Headless runtime çalışmaya devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_discovery_positive",
        "negativeName": "os_virtio_gpu_discovery_negative",
        "expectedMarker": "TURKOS/OS/K2205: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Headless runtime çalışmaya devam; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“GPU yok veya feature eksik” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2205"
    },
    {
      "id": "K2206",
      "number": 2206,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.resources",
      "stage": "contract",
      "title": "GPU 2D kaynak ve backing · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Kaynak RAM ve scanout boyu taşmasızdır.",
      "action": "“GPU 2D kaynak ve backing” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kaynak RAM ve scanout boyu taşmasızdır. “640x480 RGBA kaynak” kabulü ile “Width height stride overflow” reddini aynı sözleşmeye bağla.",
      "invariant": "Kaynak RAM ve scanout boyu taşmasızdır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_resources"
      },
      "dependencies": [
        "K2205"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "640x480 RGBA kaynak",
      "counterexample": "Width height stride overflow",
      "guestAcceptance": "Bozuk kaynak aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_resources_positive",
        "negativeName": "os_virtio_gpu_resources_negative",
        "expectedMarker": "TURKOS/OS/K2210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kaynak RAM ve scanout boyu taşmasızdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Width height stride overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2206"
    },
    {
      "id": "K2207",
      "number": 2207,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.resources",
      "stage": "implementation",
      "title": "GPU 2D kaynak ve backing · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Kaynak RAM ve scanout boyu taşmasızdır.",
      "action": "kernel/src/runtime/virtio_gpu.rs hedefinde os_virtio_gpu_resources yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kaynak RAM ve scanout boyu taşmasızdır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_resources"
      },
      "dependencies": [
        "K2206"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "640x480 RGBA kaynak",
      "counterexample": "Width height stride overflow",
      "guestAcceptance": "Bozuk kaynak aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_resources_positive",
        "negativeName": "os_virtio_gpu_resources_negative",
        "expectedMarker": "TURKOS/OS/K2210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 640x480 RGBA kaynak ile Width height stride overflow ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Width height stride overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2207"
    },
    {
      "id": "K2208",
      "number": 2208,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.resources",
      "stage": "positive",
      "title": "GPU 2D kaynak ve backing · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Kaynak RAM ve scanout boyu taşmasızdır.",
      "action": "os_virtio_gpu_resources_positive testini oluştur: “640x480 RGBA kaynak”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kaynak RAM ve scanout boyu taşmasızdır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_resources"
      },
      "dependencies": [
        "K2207"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "640x480 RGBA kaynak",
      "counterexample": "Width height stride overflow",
      "guestAcceptance": "Bozuk kaynak aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_resources_positive",
        "negativeName": "os_virtio_gpu_resources_negative",
        "expectedMarker": "TURKOS/OS/K2210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 640x480 RGBA kaynak girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Width height stride overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2208"
    },
    {
      "id": "K2209",
      "number": 2209,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.resources",
      "stage": "negative",
      "title": "GPU 2D kaynak ve backing · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Kaynak RAM ve scanout boyu taşmasızdır.",
      "action": "os_virtio_gpu_resources_negative testini oluştur: “Width height stride overflow”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kaynak RAM ve scanout boyu taşmasızdır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_resources"
      },
      "dependencies": [
        "K2208"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "640x480 RGBA kaynak",
      "counterexample": "Width height stride overflow",
      "guestAcceptance": "Bozuk kaynak aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_resources_positive",
        "negativeName": "os_virtio_gpu_resources_negative",
        "expectedMarker": "TURKOS/OS/K2210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Width height stride overflow karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Width height stride overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2209"
    },
    {
      "id": "K2210",
      "number": 2210,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.resources",
      "stage": "integration",
      "title": "GPU 2D kaynak ve backing · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Kaynak RAM ve scanout boyu taşmasızdır.",
      "action": "Tek ürün Image'ında “Bozuk kaynak aygıta sunulmaz” kabulünü koştur. scripts/os-acceptance/virtio_gpu.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kaynak RAM ve scanout boyu taşmasızdır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_resources"
      },
      "dependencies": [
        "K2209"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "640x480 RGBA kaynak",
      "counterexample": "Width height stride overflow",
      "guestAcceptance": "Bozuk kaynak aygıta sunulmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_resources_positive",
        "negativeName": "os_virtio_gpu_resources_negative",
        "expectedMarker": "TURKOS/OS/K2210: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk kaynak aygıta sunulmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Width height stride overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2210"
    },
    {
      "id": "K2211",
      "number": 2211,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.transfer",
      "stage": "contract",
      "title": "GPU transfer ve flush · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Flush yalnız doğru resource neslini kullanır.",
      "action": "“GPU transfer ve flush” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Flush yalnız doğru resource neslini kullanır. “İki farklı frame hash” kabulü ile “Eski resource id completion” reddini aynı sözleşmeye bağla.",
      "invariant": "Flush yalnız doğru resource neslini kullanır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_transfer"
      },
      "dependencies": [
        "K2210"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı frame hash",
      "counterexample": "Eski resource id completion",
      "guestAcceptance": "Konuk frame bağımsız görüntüyle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_transfer_positive",
        "negativeName": "os_virtio_gpu_transfer_negative",
        "expectedMarker": "TURKOS/OS/K2215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Flush yalnız doğru resource neslini kullanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski resource id completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2211"
    },
    {
      "id": "K2212",
      "number": 2212,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.transfer",
      "stage": "implementation",
      "title": "GPU transfer ve flush · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Flush yalnız doğru resource neslini kullanır.",
      "action": "kernel/src/runtime/virtio_gpu.rs hedefinde os_virtio_gpu_transfer yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Flush yalnız doğru resource neslini kullanır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_transfer"
      },
      "dependencies": [
        "K2211"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı frame hash",
      "counterexample": "Eski resource id completion",
      "guestAcceptance": "Konuk frame bağımsız görüntüyle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_transfer_positive",
        "negativeName": "os_virtio_gpu_transfer_negative",
        "expectedMarker": "TURKOS/OS/K2215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki farklı frame hash ile Eski resource id completion ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski resource id completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2212"
    },
    {
      "id": "K2213",
      "number": 2213,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.transfer",
      "stage": "positive",
      "title": "GPU transfer ve flush · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Flush yalnız doğru resource neslini kullanır.",
      "action": "os_virtio_gpu_transfer_positive testini oluştur: “İki farklı frame hash”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Flush yalnız doğru resource neslini kullanır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_transfer"
      },
      "dependencies": [
        "K2212"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı frame hash",
      "counterexample": "Eski resource id completion",
      "guestAcceptance": "Konuk frame bağımsız görüntüyle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_transfer_positive",
        "negativeName": "os_virtio_gpu_transfer_negative",
        "expectedMarker": "TURKOS/OS/K2215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki farklı frame hash girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski resource id completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2213"
    },
    {
      "id": "K2214",
      "number": 2214,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.transfer",
      "stage": "negative",
      "title": "GPU transfer ve flush · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Flush yalnız doğru resource neslini kullanır.",
      "action": "os_virtio_gpu_transfer_negative testini oluştur: “Eski resource id completion”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Flush yalnız doğru resource neslini kullanır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_transfer"
      },
      "dependencies": [
        "K2213"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı frame hash",
      "counterexample": "Eski resource id completion",
      "guestAcceptance": "Konuk frame bağımsız görüntüyle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_transfer_positive",
        "negativeName": "os_virtio_gpu_transfer_negative",
        "expectedMarker": "TURKOS/OS/K2215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski resource id completion karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski resource id completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2214"
    },
    {
      "id": "K2215",
      "number": 2215,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.transfer",
      "stage": "integration",
      "title": "GPU transfer ve flush · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Flush yalnız doğru resource neslini kullanır.",
      "action": "Tek ürün Image'ında “Konuk frame bağımsız görüntüyle eşleşir” kabulünü koştur. scripts/os-acceptance/virtio_gpu.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Flush yalnız doğru resource neslini kullanır",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_transfer"
      },
      "dependencies": [
        "K2214"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı frame hash",
      "counterexample": "Eski resource id completion",
      "guestAcceptance": "Konuk frame bağımsız görüntüyle eşleşir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_transfer_positive",
        "negativeName": "os_virtio_gpu_transfer_negative",
        "expectedMarker": "TURKOS/OS/K2215: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Konuk frame bağımsız görüntüyle eşleşir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski resource id completion” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2215"
    },
    {
      "id": "K2216",
      "number": 2216,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.reset",
      "stage": "contract",
      "title": "GPU reset kaynak ömrü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Aygıt bıraktıktan sonra backing iade edilir.",
      "action": "“GPU reset kaynak ömrü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aygıt bıraktıktan sonra backing iade edilir. “Display kapat yeniden aç” kabulü ile “Canlı scanout erken free” reddini aynı sözleşmeye bağla.",
      "invariant": "Aygıt bıraktıktan sonra backing iade edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_reset"
      },
      "dependencies": [
        "K2215"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Display kapat yeniden aç",
      "counterexample": "Canlı scanout erken free",
      "guestAcceptance": "Tek kaynak sahibi ve temiz yeniden çizim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_reset_positive",
        "negativeName": "os_virtio_gpu_reset_negative",
        "expectedMarker": "TURKOS/OS/K2220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aygıt bıraktıktan sonra backing iade edilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Canlı scanout erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2216"
    },
    {
      "id": "K2217",
      "number": 2217,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.reset",
      "stage": "implementation",
      "title": "GPU reset kaynak ömrü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Aygıt bıraktıktan sonra backing iade edilir.",
      "action": "kernel/src/runtime/virtio_gpu.rs hedefinde os_virtio_gpu_reset yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_ring.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aygıt bıraktıktan sonra backing iade edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_reset"
      },
      "dependencies": [
        "K2216"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Display kapat yeniden aç",
      "counterexample": "Canlı scanout erken free",
      "guestAcceptance": "Tek kaynak sahibi ve temiz yeniden çizim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_reset_positive",
        "negativeName": "os_virtio_gpu_reset_negative",
        "expectedMarker": "TURKOS/OS/K2220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Display kapat yeniden aç ile Canlı scanout erken free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Canlı scanout erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2217"
    },
    {
      "id": "K2218",
      "number": 2218,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.reset",
      "stage": "positive",
      "title": "GPU reset kaynak ömrü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Aygıt bıraktıktan sonra backing iade edilir.",
      "action": "os_virtio_gpu_reset_positive testini oluştur: “Display kapat yeniden aç”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aygıt bıraktıktan sonra backing iade edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_reset"
      },
      "dependencies": [
        "K2217"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Display kapat yeniden aç",
      "counterexample": "Canlı scanout erken free",
      "guestAcceptance": "Tek kaynak sahibi ve temiz yeniden çizim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_reset_positive",
        "negativeName": "os_virtio_gpu_reset_negative",
        "expectedMarker": "TURKOS/OS/K2220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Display kapat yeniden aç girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Canlı scanout erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2218"
    },
    {
      "id": "K2219",
      "number": 2219,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.reset",
      "stage": "negative",
      "title": "GPU reset kaynak ömrü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Aygıt bıraktıktan sonra backing iade edilir.",
      "action": "os_virtio_gpu_reset_negative testini oluştur: “Canlı scanout erken free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aygıt bıraktıktan sonra backing iade edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_reset"
      },
      "dependencies": [
        "K2218"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Display kapat yeniden aç",
      "counterexample": "Canlı scanout erken free",
      "guestAcceptance": "Tek kaynak sahibi ve temiz yeniden çizim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_reset_positive",
        "negativeName": "os_virtio_gpu_reset_negative",
        "expectedMarker": "TURKOS/OS/K2220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Canlı scanout erken free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Canlı scanout erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2219"
    },
    {
      "id": "K2220",
      "number": 2220,
      "phase": 17,
      "module": "virtio_gpu",
      "feature": "virtio_gpu.reset",
      "stage": "integration",
      "title": "GPU reset kaynak ömrü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Aygıt bıraktıktan sonra backing iade edilir.",
      "action": "Tek ürün Image'ında “Tek kaynak sahibi ve temiz yeniden çizim” kabulünü koştur. scripts/os-acceptance/virtio_gpu.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aygıt bıraktıktan sonra backing iade edilir",
      "source": {
        "target": "kernel/src/runtime/virtio_gpu.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_ring.rs",
        "existingReferenceSha256": "f2f9915ca521c4496daead0c879dacc190f7eb6e076ce0a4f0f34248b4f48ab7",
        "symbol": "os_virtio_gpu_reset"
      },
      "dependencies": [
        "K2219"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Display kapat yeniden aç",
      "counterexample": "Canlı scanout erken free",
      "guestAcceptance": "Tek kaynak sahibi ve temiz yeniden çizim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_gpu.rs",
        "harness": "scripts/os-acceptance/virtio_gpu.mjs",
        "positiveName": "os_virtio_gpu_reset_positive",
        "negativeName": "os_virtio_gpu_reset_negative",
        "expectedMarker": "TURKOS/OS/K2220: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek kaynak sahibi ve temiz yeniden çizim; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Canlı scanout erken free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2220"
    },
    {
      "id": "K2221",
      "number": 2221,
      "phase": 17,
      "module": "raster",
      "feature": "raster.pixels",
      "stage": "contract",
      "title": "Pixel format ve stride · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Çizim framebuffer byte aralığını aşmaz.",
      "action": "“Pixel format ve stride” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Çizim framebuffer byte aralığını aşmaz. “RGBA ve padded stride” kabulü ile “Son satırda overflow” reddini aynı sözleşmeye bağla.",
      "invariant": "Çizim framebuffer byte aralığını aşmaz",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_pixels"
      },
      "dependencies": [
        "K2220"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "RGBA ve padded stride",
      "counterexample": "Son satırda overflow",
      "guestAcceptance": "Guard kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_pixels_positive",
        "negativeName": "os_raster_pixels_negative",
        "expectedMarker": "TURKOS/OS/K2225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Çizim framebuffer byte aralığını aşmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Son satırda overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2221"
    },
    {
      "id": "K2222",
      "number": 2222,
      "phase": 17,
      "module": "raster",
      "feature": "raster.pixels",
      "stage": "implementation",
      "title": "Pixel format ve stride · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Çizim framebuffer byte aralığını aşmaz.",
      "action": "userspace/src/raster.rs hedefinde os_raster_pixels yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Çizim framebuffer byte aralığını aşmaz",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_pixels"
      },
      "dependencies": [
        "K2221"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "RGBA ve padded stride",
      "counterexample": "Son satırda overflow",
      "guestAcceptance": "Guard kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_pixels_positive",
        "negativeName": "os_raster_pixels_negative",
        "expectedMarker": "TURKOS/OS/K2225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. RGBA ve padded stride ile Son satırda overflow ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Son satırda overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2222"
    },
    {
      "id": "K2223",
      "number": 2223,
      "phase": 17,
      "module": "raster",
      "feature": "raster.pixels",
      "stage": "positive",
      "title": "Pixel format ve stride · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Çizim framebuffer byte aralığını aşmaz.",
      "action": "os_raster_pixels_positive testini oluştur: “RGBA ve padded stride”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Çizim framebuffer byte aralığını aşmaz",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_pixels"
      },
      "dependencies": [
        "K2222"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "RGBA ve padded stride",
      "counterexample": "Son satırda overflow",
      "guestAcceptance": "Guard kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_pixels_positive",
        "negativeName": "os_raster_pixels_negative",
        "expectedMarker": "TURKOS/OS/K2225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; RGBA ve padded stride girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Son satırda overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2223"
    },
    {
      "id": "K2224",
      "number": 2224,
      "phase": 17,
      "module": "raster",
      "feature": "raster.pixels",
      "stage": "negative",
      "title": "Pixel format ve stride · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Çizim framebuffer byte aralığını aşmaz.",
      "action": "os_raster_pixels_negative testini oluştur: “Son satırda overflow”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Çizim framebuffer byte aralığını aşmaz",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_pixels"
      },
      "dependencies": [
        "K2223"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "RGBA ve padded stride",
      "counterexample": "Son satırda overflow",
      "guestAcceptance": "Guard kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_pixels_positive",
        "negativeName": "os_raster_pixels_negative",
        "expectedMarker": "TURKOS/OS/K2225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son satırda overflow karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Son satırda overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2224"
    },
    {
      "id": "K2225",
      "number": 2225,
      "phase": 17,
      "module": "raster",
      "feature": "raster.pixels",
      "stage": "integration",
      "title": "Pixel format ve stride · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Çizim framebuffer byte aralığını aşmaz.",
      "action": "Tek ürün Image'ında “Guard kanaryaları korunur” kabulünü koştur. scripts/os-acceptance/raster.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Çizim framebuffer byte aralığını aşmaz",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_pixels"
      },
      "dependencies": [
        "K2224"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "RGBA ve padded stride",
      "counterexample": "Son satırda overflow",
      "guestAcceptance": "Guard kanaryaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_pixels_positive",
        "negativeName": "os_raster_pixels_negative",
        "expectedMarker": "TURKOS/OS/K2225: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Guard kanaryaları korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Son satırda overflow” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2225"
    },
    {
      "id": "K2226",
      "number": 2226,
      "phase": 17,
      "module": "raster",
      "feature": "raster.rectangles",
      "stage": "contract",
      "title": "Rect clipping ve damage · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Hasar dikdörtgeni görünür alanla kesişir.",
      "action": "“Rect clipping ve damage” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hasar dikdörtgeni görünür alanla kesişir. “Kısmen dışarıda iki rect” kabulü ile “Negatif koordinat unsigned sarar” reddini aynı sözleşmeye bağla.",
      "invariant": "Hasar dikdörtgeni görünür alanla kesişir",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_rectangles"
      },
      "dependencies": [
        "K2225"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Kısmen dışarıda iki rect",
      "counterexample": "Negatif koordinat unsigned sarar",
      "guestAcceptance": "Yalnız kesişim pikselleri değişir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_rectangles_positive",
        "negativeName": "os_raster_rectangles_negative",
        "expectedMarker": "TURKOS/OS/K2230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hasar dikdörtgeni görünür alanla kesişir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Negatif koordinat unsigned sarar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2226"
    },
    {
      "id": "K2227",
      "number": 2227,
      "phase": 17,
      "module": "raster",
      "feature": "raster.rectangles",
      "stage": "implementation",
      "title": "Rect clipping ve damage · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Hasar dikdörtgeni görünür alanla kesişir.",
      "action": "userspace/src/raster.rs hedefinde os_raster_rectangles yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hasar dikdörtgeni görünür alanla kesişir",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_rectangles"
      },
      "dependencies": [
        "K2226"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Kısmen dışarıda iki rect",
      "counterexample": "Negatif koordinat unsigned sarar",
      "guestAcceptance": "Yalnız kesişim pikselleri değişir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_rectangles_positive",
        "negativeName": "os_raster_rectangles_negative",
        "expectedMarker": "TURKOS/OS/K2230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kısmen dışarıda iki rect ile Negatif koordinat unsigned sarar ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Negatif koordinat unsigned sarar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2227"
    },
    {
      "id": "K2228",
      "number": 2228,
      "phase": 17,
      "module": "raster",
      "feature": "raster.rectangles",
      "stage": "positive",
      "title": "Rect clipping ve damage · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Hasar dikdörtgeni görünür alanla kesişir.",
      "action": "os_raster_rectangles_positive testini oluştur: “Kısmen dışarıda iki rect”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hasar dikdörtgeni görünür alanla kesişir",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_rectangles"
      },
      "dependencies": [
        "K2227"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Kısmen dışarıda iki rect",
      "counterexample": "Negatif koordinat unsigned sarar",
      "guestAcceptance": "Yalnız kesişim pikselleri değişir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_rectangles_positive",
        "negativeName": "os_raster_rectangles_negative",
        "expectedMarker": "TURKOS/OS/K2230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kısmen dışarıda iki rect girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Negatif koordinat unsigned sarar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2228"
    },
    {
      "id": "K2229",
      "number": 2229,
      "phase": 17,
      "module": "raster",
      "feature": "raster.rectangles",
      "stage": "negative",
      "title": "Rect clipping ve damage · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Hasar dikdörtgeni görünür alanla kesişir.",
      "action": "os_raster_rectangles_negative testini oluştur: “Negatif koordinat unsigned sarar”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hasar dikdörtgeni görünür alanla kesişir",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_rectangles"
      },
      "dependencies": [
        "K2228"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Kısmen dışarıda iki rect",
      "counterexample": "Negatif koordinat unsigned sarar",
      "guestAcceptance": "Yalnız kesişim pikselleri değişir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_rectangles_positive",
        "negativeName": "os_raster_rectangles_negative",
        "expectedMarker": "TURKOS/OS/K2230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Negatif koordinat unsigned sarar karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Negatif koordinat unsigned sarar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2229"
    },
    {
      "id": "K2230",
      "number": 2230,
      "phase": 17,
      "module": "raster",
      "feature": "raster.rectangles",
      "stage": "integration",
      "title": "Rect clipping ve damage · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Hasar dikdörtgeni görünür alanla kesişir.",
      "action": "Tek ürün Image'ında “Yalnız kesişim pikselleri değişir” kabulünü koştur. scripts/os-acceptance/raster.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hasar dikdörtgeni görünür alanla kesişir",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_rectangles"
      },
      "dependencies": [
        "K2229"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Kısmen dışarıda iki rect",
      "counterexample": "Negatif koordinat unsigned sarar",
      "guestAcceptance": "Yalnız kesişim pikselleri değişir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_rectangles_positive",
        "negativeName": "os_raster_rectangles_negative",
        "expectedMarker": "TURKOS/OS/K2230: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yalnız kesişim pikselleri değişir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Negatif koordinat unsigned sarar” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2230"
    },
    {
      "id": "K2231",
      "number": 2231,
      "phase": 17,
      "module": "raster",
      "feature": "raster.glyphs",
      "stage": "contract",
      "title": "Bitmap font ve UTF8 fallback · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Glyph erişimi font tablosunda sınırlıdır.",
      "action": "“Bitmap font ve UTF8 fallback” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Glyph erişimi font tablosunda sınırlıdır. “Türkçe karakter ve bilinmeyen glyph” kabulü ile “Bozuk font offset” reddini aynı sözleşmeye bağla.",
      "invariant": "Glyph erişimi font tablosunda sınırlıdır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_glyphs"
      },
      "dependencies": [
        "K2230"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Türkçe karakter ve bilinmeyen glyph",
      "counterexample": "Bozuk font offset",
      "guestAcceptance": "Fallback kutu çizilir panik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_glyphs_positive",
        "negativeName": "os_raster_glyphs_negative",
        "expectedMarker": "TURKOS/OS/K2235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Glyph erişimi font tablosunda sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk font offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2231"
    },
    {
      "id": "K2232",
      "number": 2232,
      "phase": 17,
      "module": "raster",
      "feature": "raster.glyphs",
      "stage": "implementation",
      "title": "Bitmap font ve UTF8 fallback · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Glyph erişimi font tablosunda sınırlıdır.",
      "action": "userspace/src/raster.rs hedefinde os_raster_glyphs yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Glyph erişimi font tablosunda sınırlıdır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_glyphs"
      },
      "dependencies": [
        "K2231"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Türkçe karakter ve bilinmeyen glyph",
      "counterexample": "Bozuk font offset",
      "guestAcceptance": "Fallback kutu çizilir panik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_glyphs_positive",
        "negativeName": "os_raster_glyphs_negative",
        "expectedMarker": "TURKOS/OS/K2235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Türkçe karakter ve bilinmeyen glyph ile Bozuk font offset ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk font offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2232"
    },
    {
      "id": "K2233",
      "number": 2233,
      "phase": 17,
      "module": "raster",
      "feature": "raster.glyphs",
      "stage": "positive",
      "title": "Bitmap font ve UTF8 fallback · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Glyph erişimi font tablosunda sınırlıdır.",
      "action": "os_raster_glyphs_positive testini oluştur: “Türkçe karakter ve bilinmeyen glyph”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Glyph erişimi font tablosunda sınırlıdır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_glyphs"
      },
      "dependencies": [
        "K2232"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Türkçe karakter ve bilinmeyen glyph",
      "counterexample": "Bozuk font offset",
      "guestAcceptance": "Fallback kutu çizilir panik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_glyphs_positive",
        "negativeName": "os_raster_glyphs_negative",
        "expectedMarker": "TURKOS/OS/K2235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Türkçe karakter ve bilinmeyen glyph girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk font offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2233"
    },
    {
      "id": "K2234",
      "number": 2234,
      "phase": 17,
      "module": "raster",
      "feature": "raster.glyphs",
      "stage": "negative",
      "title": "Bitmap font ve UTF8 fallback · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Glyph erişimi font tablosunda sınırlıdır.",
      "action": "os_raster_glyphs_negative testini oluştur: “Bozuk font offset”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Glyph erişimi font tablosunda sınırlıdır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_glyphs"
      },
      "dependencies": [
        "K2233"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Türkçe karakter ve bilinmeyen glyph",
      "counterexample": "Bozuk font offset",
      "guestAcceptance": "Fallback kutu çizilir panik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_glyphs_positive",
        "negativeName": "os_raster_glyphs_negative",
        "expectedMarker": "TURKOS/OS/K2235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk font offset karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk font offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2234"
    },
    {
      "id": "K2235",
      "number": 2235,
      "phase": 17,
      "module": "raster",
      "feature": "raster.glyphs",
      "stage": "integration",
      "title": "Bitmap font ve UTF8 fallback · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Glyph erişimi font tablosunda sınırlıdır.",
      "action": "Tek ürün Image'ında “Fallback kutu çizilir panik yok” kabulünü koştur. scripts/os-acceptance/raster.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Glyph erişimi font tablosunda sınırlıdır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_glyphs"
      },
      "dependencies": [
        "K2234"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Türkçe karakter ve bilinmeyen glyph",
      "counterexample": "Bozuk font offset",
      "guestAcceptance": "Fallback kutu çizilir panik yok",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_glyphs_positive",
        "negativeName": "os_raster_glyphs_negative",
        "expectedMarker": "TURKOS/OS/K2235: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Fallback kutu çizilir panik yok; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk font offset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2235"
    },
    {
      "id": "K2236",
      "number": 2236,
      "phase": 17,
      "module": "raster",
      "feature": "raster.text_layout",
      "stage": "contract",
      "title": "Terminal satır ve scroll · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Satır hücre ve scroll sınırı açıktır.",
      "action": "“Terminal satır ve scroll” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Satır hücre ve scroll sınırı açıktır. “80x25 metin ve 26 satır” kabulü ile “Uzun kaçış veya aşırı hücre” reddini aynı sözleşmeye bağla.",
      "invariant": "Satır hücre ve scroll sınırı açıktır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_text_layout"
      },
      "dependencies": [
        "K2235"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "80x25 metin ve 26 satır",
      "counterexample": "Uzun kaçış veya aşırı hücre",
      "guestAcceptance": "Beklenen satır hashleri ve guardlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_text_layout_positive",
        "negativeName": "os_raster_text_layout_negative",
        "expectedMarker": "TURKOS/OS/K2240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Satır hücre ve scroll sınırı açıktır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Uzun kaçış veya aşırı hücre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2236"
    },
    {
      "id": "K2237",
      "number": 2237,
      "phase": 17,
      "module": "raster",
      "feature": "raster.text_layout",
      "stage": "implementation",
      "title": "Terminal satır ve scroll · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Satır hücre ve scroll sınırı açıktır.",
      "action": "userspace/src/raster.rs hedefinde os_raster_text_layout yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/mmu.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Satır hücre ve scroll sınırı açıktır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_text_layout"
      },
      "dependencies": [
        "K2236"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "80x25 metin ve 26 satır",
      "counterexample": "Uzun kaçış veya aşırı hücre",
      "guestAcceptance": "Beklenen satır hashleri ve guardlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_text_layout_positive",
        "negativeName": "os_raster_text_layout_negative",
        "expectedMarker": "TURKOS/OS/K2240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 80x25 metin ve 26 satır ile Uzun kaçış veya aşırı hücre ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Uzun kaçış veya aşırı hücre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2237"
    },
    {
      "id": "K2238",
      "number": 2238,
      "phase": 17,
      "module": "raster",
      "feature": "raster.text_layout",
      "stage": "positive",
      "title": "Terminal satır ve scroll · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Satır hücre ve scroll sınırı açıktır.",
      "action": "os_raster_text_layout_positive testini oluştur: “80x25 metin ve 26 satır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Satır hücre ve scroll sınırı açıktır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_text_layout"
      },
      "dependencies": [
        "K2237"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "80x25 metin ve 26 satır",
      "counterexample": "Uzun kaçış veya aşırı hücre",
      "guestAcceptance": "Beklenen satır hashleri ve guardlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_text_layout_positive",
        "negativeName": "os_raster_text_layout_negative",
        "expectedMarker": "TURKOS/OS/K2240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 80x25 metin ve 26 satır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Uzun kaçış veya aşırı hücre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2238"
    },
    {
      "id": "K2239",
      "number": 2239,
      "phase": 17,
      "module": "raster",
      "feature": "raster.text_layout",
      "stage": "negative",
      "title": "Terminal satır ve scroll · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Satır hücre ve scroll sınırı açıktır.",
      "action": "os_raster_text_layout_negative testini oluştur: “Uzun kaçış veya aşırı hücre”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Satır hücre ve scroll sınırı açıktır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_text_layout"
      },
      "dependencies": [
        "K2238"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "80x25 metin ve 26 satır",
      "counterexample": "Uzun kaçış veya aşırı hücre",
      "guestAcceptance": "Beklenen satır hashleri ve guardlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_text_layout_positive",
        "negativeName": "os_raster_text_layout_negative",
        "expectedMarker": "TURKOS/OS/K2240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Uzun kaçış veya aşırı hücre karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Uzun kaçış veya aşırı hücre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2239"
    },
    {
      "id": "K2240",
      "number": 2240,
      "phase": 17,
      "module": "raster",
      "feature": "raster.text_layout",
      "stage": "integration",
      "title": "Terminal satır ve scroll · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Satır hücre ve scroll sınırı açıktır.",
      "action": "Tek ürün Image'ında “Beklenen satır hashleri ve guardlar” kabulünü koştur. scripts/os-acceptance/raster.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Satır hücre ve scroll sınırı açıktır",
      "source": {
        "target": "userspace/src/raster.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/mmu.rs",
        "existingReferenceSha256": "d8f0f8504ae1483b5ce8da85f3206a79d0da1ff0ed884d93cbaf763c41240d2f",
        "symbol": "os_raster_text_layout"
      },
      "dependencies": [
        "K2239"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "80x25 metin ve 26 satır",
      "counterexample": "Uzun kaçış veya aşırı hücre",
      "guestAcceptance": "Beklenen satır hashleri ve guardlar",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/raster.rs",
        "harness": "scripts/os-acceptance/raster.mjs",
        "positiveName": "os_raster_text_layout_positive",
        "negativeName": "os_raster_text_layout_negative",
        "expectedMarker": "TURKOS/OS/K2240: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Beklenen satır hashleri ve guardlar; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Uzun kaçış veya aşırı hücre” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2240"
    },
    {
      "id": "K2241",
      "number": 2241,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.events",
      "stage": "contract",
      "title": "Virtio input olay parserı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Event tür kod boy whitelist ile sınırlıdır.",
      "action": "“Virtio input olay parserı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Event tür kod boy whitelist ile sınırlıdır. “Key down up ve sync” kabulü ile “Bozuk event length” reddini aynı sözleşmeye bağla.",
      "invariant": "Event tür kod boy whitelist ile sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_events"
      },
      "dependencies": [
        "K2240"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Key down up ve sync",
      "counterexample": "Bozuk event length",
      "guestAcceptance": "Yalnız geçerli olay üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_events_positive",
        "negativeName": "os_virtio_input_events_negative",
        "expectedMarker": "TURKOS/OS/K2245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Event tür kod boy whitelist ile sınırlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk event length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2241"
    },
    {
      "id": "K2242",
      "number": 2242,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.events",
      "stage": "implementation",
      "title": "Virtio input olay parserı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Event tür kod boy whitelist ile sınırlıdır.",
      "action": "kernel/src/runtime/virtio_input.rs hedefinde os_virtio_input_events yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Event tür kod boy whitelist ile sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_events"
      },
      "dependencies": [
        "K2241"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Key down up ve sync",
      "counterexample": "Bozuk event length",
      "guestAcceptance": "Yalnız geçerli olay üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_events_positive",
        "negativeName": "os_virtio_input_events_negative",
        "expectedMarker": "TURKOS/OS/K2245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Key down up ve sync ile Bozuk event length ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk event length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2242"
    },
    {
      "id": "K2243",
      "number": 2243,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.events",
      "stage": "positive",
      "title": "Virtio input olay parserı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Event tür kod boy whitelist ile sınırlıdır.",
      "action": "os_virtio_input_events_positive testini oluştur: “Key down up ve sync”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Event tür kod boy whitelist ile sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_events"
      },
      "dependencies": [
        "K2242"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Key down up ve sync",
      "counterexample": "Bozuk event length",
      "guestAcceptance": "Yalnız geçerli olay üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_events_positive",
        "negativeName": "os_virtio_input_events_negative",
        "expectedMarker": "TURKOS/OS/K2245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Key down up ve sync girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk event length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2243"
    },
    {
      "id": "K2244",
      "number": 2244,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.events",
      "stage": "negative",
      "title": "Virtio input olay parserı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Event tür kod boy whitelist ile sınırlıdır.",
      "action": "os_virtio_input_events_negative testini oluştur: “Bozuk event length”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Event tür kod boy whitelist ile sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_events"
      },
      "dependencies": [
        "K2243"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Key down up ve sync",
      "counterexample": "Bozuk event length",
      "guestAcceptance": "Yalnız geçerli olay üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_events_positive",
        "negativeName": "os_virtio_input_events_negative",
        "expectedMarker": "TURKOS/OS/K2245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk event length karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk event length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2244"
    },
    {
      "id": "K2245",
      "number": 2245,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.events",
      "stage": "integration",
      "title": "Virtio input olay parserı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Event tür kod boy whitelist ile sınırlıdır.",
      "action": "Tek ürün Image'ında “Yalnız geçerli olay üst katmana” kabulünü koştur. scripts/os-acceptance/virtio_input.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Event tür kod boy whitelist ile sınırlıdır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_events"
      },
      "dependencies": [
        "K2244"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Key down up ve sync",
      "counterexample": "Bozuk event length",
      "guestAcceptance": "Yalnız geçerli olay üst katmana",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_events_positive",
        "negativeName": "os_virtio_input_events_negative",
        "expectedMarker": "TURKOS/OS/K2245: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yalnız geçerli olay üst katmana; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk event length” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2245"
    },
    {
      "id": "K2246",
      "number": 2246,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.keyboard",
      "stage": "contract",
      "title": "Keymap modifier ve repeat · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Basılı tuş state nesliyle temizlenir.",
      "action": "“Keymap modifier ve repeat” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Basılı tuş state nesliyle temizlenir. “Shift Türkçe karakter repeat” kabulü ile “Release kaybı ve reset” reddini aynı sözleşmeye bağla.",
      "invariant": "Basılı tuş state nesliyle temizlenir",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_keyboard"
      },
      "dependencies": [
        "K2245"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shift Türkçe karakter repeat",
      "counterexample": "Release kaybı ve reset",
      "guestAcceptance": "Resetten sonra modifier takılı kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_keyboard_positive",
        "negativeName": "os_virtio_input_keyboard_negative",
        "expectedMarker": "TURKOS/OS/K2250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Basılı tuş state nesliyle temizlenir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Release kaybı ve reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2246"
    },
    {
      "id": "K2247",
      "number": 2247,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.keyboard",
      "stage": "implementation",
      "title": "Keymap modifier ve repeat · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Basılı tuş state nesliyle temizlenir.",
      "action": "kernel/src/runtime/virtio_input.rs hedefinde os_virtio_input_keyboard yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Basılı tuş state nesliyle temizlenir",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_keyboard"
      },
      "dependencies": [
        "K2246"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shift Türkçe karakter repeat",
      "counterexample": "Release kaybı ve reset",
      "guestAcceptance": "Resetten sonra modifier takılı kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_keyboard_positive",
        "negativeName": "os_virtio_input_keyboard_negative",
        "expectedMarker": "TURKOS/OS/K2250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Shift Türkçe karakter repeat ile Release kaybı ve reset ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Release kaybı ve reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2247"
    },
    {
      "id": "K2248",
      "number": 2248,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.keyboard",
      "stage": "positive",
      "title": "Keymap modifier ve repeat · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Basılı tuş state nesliyle temizlenir.",
      "action": "os_virtio_input_keyboard_positive testini oluştur: “Shift Türkçe karakter repeat”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Basılı tuş state nesliyle temizlenir",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_keyboard"
      },
      "dependencies": [
        "K2247"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shift Türkçe karakter repeat",
      "counterexample": "Release kaybı ve reset",
      "guestAcceptance": "Resetten sonra modifier takılı kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_keyboard_positive",
        "negativeName": "os_virtio_input_keyboard_negative",
        "expectedMarker": "TURKOS/OS/K2250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Shift Türkçe karakter repeat girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Release kaybı ve reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2248"
    },
    {
      "id": "K2249",
      "number": 2249,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.keyboard",
      "stage": "negative",
      "title": "Keymap modifier ve repeat · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Basılı tuş state nesliyle temizlenir.",
      "action": "os_virtio_input_keyboard_negative testini oluştur: “Release kaybı ve reset”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Basılı tuş state nesliyle temizlenir",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_keyboard"
      },
      "dependencies": [
        "K2248"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shift Türkçe karakter repeat",
      "counterexample": "Release kaybı ve reset",
      "guestAcceptance": "Resetten sonra modifier takılı kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_keyboard_positive",
        "negativeName": "os_virtio_input_keyboard_negative",
        "expectedMarker": "TURKOS/OS/K2250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Release kaybı ve reset karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Release kaybı ve reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2249"
    },
    {
      "id": "K2250",
      "number": 2250,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.keyboard",
      "stage": "integration",
      "title": "Keymap modifier ve repeat · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Basılı tuş state nesliyle temizlenir.",
      "action": "Tek ürün Image'ında “Resetten sonra modifier takılı kalmaz” kabulünü koştur. scripts/os-acceptance/virtio_input.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Basılı tuş state nesliyle temizlenir",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_keyboard"
      },
      "dependencies": [
        "K2249"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shift Türkçe karakter repeat",
      "counterexample": "Release kaybı ve reset",
      "guestAcceptance": "Resetten sonra modifier takılı kalmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_keyboard_positive",
        "negativeName": "os_virtio_input_keyboard_negative",
        "expectedMarker": "TURKOS/OS/K2250: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Resetten sonra modifier takılı kalmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Release kaybı ve reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2250"
    },
    {
      "id": "K2251",
      "number": 2251,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.pointer",
      "stage": "contract",
      "title": "Absolute pointer koordinatı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Range dönüşümü ekran içinde kalır.",
      "action": "“Absolute pointer koordinatı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Range dönüşümü ekran içinde kalır. “Köşe ve orta koordinat” kabulü ile “Min max ters veya taşan delta” reddini aynı sözleşmeye bağla.",
      "invariant": "Range dönüşümü ekran içinde kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_pointer"
      },
      "dependencies": [
        "K2250"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Köşe ve orta koordinat",
      "counterexample": "Min max ters veya taşan delta",
      "guestAcceptance": "İmleç sınırda clipped durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_pointer_positive",
        "negativeName": "os_virtio_input_pointer_negative",
        "expectedMarker": "TURKOS/OS/K2255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Range dönüşümü ekran içinde kalır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Min max ters veya taşan delta” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2251"
    },
    {
      "id": "K2252",
      "number": 2252,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.pointer",
      "stage": "implementation",
      "title": "Absolute pointer koordinatı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Range dönüşümü ekran içinde kalır.",
      "action": "kernel/src/runtime/virtio_input.rs hedefinde os_virtio_input_pointer yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Range dönüşümü ekran içinde kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_pointer"
      },
      "dependencies": [
        "K2251"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Köşe ve orta koordinat",
      "counterexample": "Min max ters veya taşan delta",
      "guestAcceptance": "İmleç sınırda clipped durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_pointer_positive",
        "negativeName": "os_virtio_input_pointer_negative",
        "expectedMarker": "TURKOS/OS/K2255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Köşe ve orta koordinat ile Min max ters veya taşan delta ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Min max ters veya taşan delta” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2252"
    },
    {
      "id": "K2253",
      "number": 2253,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.pointer",
      "stage": "positive",
      "title": "Absolute pointer koordinatı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Range dönüşümü ekran içinde kalır.",
      "action": "os_virtio_input_pointer_positive testini oluştur: “Köşe ve orta koordinat”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Range dönüşümü ekran içinde kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_pointer"
      },
      "dependencies": [
        "K2252"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Köşe ve orta koordinat",
      "counterexample": "Min max ters veya taşan delta",
      "guestAcceptance": "İmleç sınırda clipped durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_pointer_positive",
        "negativeName": "os_virtio_input_pointer_negative",
        "expectedMarker": "TURKOS/OS/K2255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Köşe ve orta koordinat girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Min max ters veya taşan delta” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2253"
    },
    {
      "id": "K2254",
      "number": 2254,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.pointer",
      "stage": "negative",
      "title": "Absolute pointer koordinatı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Range dönüşümü ekran içinde kalır.",
      "action": "os_virtio_input_pointer_negative testini oluştur: “Min max ters veya taşan delta”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Range dönüşümü ekran içinde kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_pointer"
      },
      "dependencies": [
        "K2253"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Köşe ve orta koordinat",
      "counterexample": "Min max ters veya taşan delta",
      "guestAcceptance": "İmleç sınırda clipped durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_pointer_positive",
        "negativeName": "os_virtio_input_pointer_negative",
        "expectedMarker": "TURKOS/OS/K2255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Min max ters veya taşan delta karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Min max ters veya taşan delta” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2254"
    },
    {
      "id": "K2255",
      "number": 2255,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.pointer",
      "stage": "integration",
      "title": "Absolute pointer koordinatı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Range dönüşümü ekran içinde kalır.",
      "action": "Tek ürün Image'ında “İmleç sınırda clipped durur” kabulünü koştur. scripts/os-acceptance/virtio_input.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Range dönüşümü ekran içinde kalır",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_pointer"
      },
      "dependencies": [
        "K2254"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Köşe ve orta koordinat",
      "counterexample": "Min max ters veya taşan delta",
      "guestAcceptance": "İmleç sınırda clipped durur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_pointer_positive",
        "negativeName": "os_virtio_input_pointer_negative",
        "expectedMarker": "TURKOS/OS/K2255: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İmleç sınırda clipped durur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Min max ters veya taşan delta” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2255"
    },
    {
      "id": "K2256",
      "number": 2256,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.focus",
      "stage": "contract",
      "title": "Input hedef yetkisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Bir session başka pencereye input çalamaz.",
      "action": "“Input hedef yetkisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Bir session başka pencereye input çalamaz. “İki odaklı sırayla uygulama” kabulü ile “Eski focus session replay” reddini aynı sözleşmeye bağla.",
      "invariant": "Bir session başka pencereye input çalamaz",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_focus"
      },
      "dependencies": [
        "K2255"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki odaklı sırayla uygulama",
      "counterexample": "Eski focus session replay",
      "guestAcceptance": "Yalnız güncel hedef olayı alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_focus_positive",
        "negativeName": "os_virtio_input_focus_negative",
        "expectedMarker": "TURKOS/OS/K2260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Bir session başka pencereye input çalamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski focus session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2256"
    },
    {
      "id": "K2257",
      "number": 2257,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.focus",
      "stage": "implementation",
      "title": "Input hedef yetkisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Bir session başka pencereye input çalamaz.",
      "action": "kernel/src/runtime/virtio_input.rs hedefinde os_virtio_input_focus yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/virtio_mmio.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Bir session başka pencereye input çalamaz",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_focus"
      },
      "dependencies": [
        "K2256"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki odaklı sırayla uygulama",
      "counterexample": "Eski focus session replay",
      "guestAcceptance": "Yalnız güncel hedef olayı alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_focus_positive",
        "negativeName": "os_virtio_input_focus_negative",
        "expectedMarker": "TURKOS/OS/K2260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki odaklı sırayla uygulama ile Eski focus session replay ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski focus session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2257"
    },
    {
      "id": "K2258",
      "number": 2258,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.focus",
      "stage": "positive",
      "title": "Input hedef yetkisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Bir session başka pencereye input çalamaz.",
      "action": "os_virtio_input_focus_positive testini oluştur: “İki odaklı sırayla uygulama”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Bir session başka pencereye input çalamaz",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_focus"
      },
      "dependencies": [
        "K2257"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki odaklı sırayla uygulama",
      "counterexample": "Eski focus session replay",
      "guestAcceptance": "Yalnız güncel hedef olayı alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_focus_positive",
        "negativeName": "os_virtio_input_focus_negative",
        "expectedMarker": "TURKOS/OS/K2260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki odaklı sırayla uygulama girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski focus session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2258"
    },
    {
      "id": "K2259",
      "number": 2259,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.focus",
      "stage": "negative",
      "title": "Input hedef yetkisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Bir session başka pencereye input çalamaz.",
      "action": "os_virtio_input_focus_negative testini oluştur: “Eski focus session replay”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Bir session başka pencereye input çalamaz",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_focus"
      },
      "dependencies": [
        "K2258"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki odaklı sırayla uygulama",
      "counterexample": "Eski focus session replay",
      "guestAcceptance": "Yalnız güncel hedef olayı alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_focus_positive",
        "negativeName": "os_virtio_input_focus_negative",
        "expectedMarker": "TURKOS/OS/K2260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski focus session replay karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski focus session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2259"
    },
    {
      "id": "K2260",
      "number": 2260,
      "phase": 17,
      "module": "virtio_input",
      "feature": "virtio_input.focus",
      "stage": "integration",
      "title": "Input hedef yetkisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Bir session başka pencereye input çalamaz.",
      "action": "Tek ürün Image'ında “Yalnız güncel hedef olayı alır” kabulünü koştur. scripts/os-acceptance/virtio_input.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Bir session başka pencereye input çalamaz",
      "source": {
        "target": "kernel/src/runtime/virtio_input.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/virtio_mmio.rs",
        "existingReferenceSha256": "04e5269a8637b797205d91c71a481eb61a7b5d45134a8062c791c234e29a086e",
        "symbol": "os_virtio_input_focus"
      },
      "dependencies": [
        "K2259"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki odaklı sırayla uygulama",
      "counterexample": "Eski focus session replay",
      "guestAcceptance": "Yalnız güncel hedef olayı alır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "kernel/tests/os/virtio_input.rs",
        "harness": "scripts/os-acceptance/virtio_input.mjs",
        "positiveName": "os_virtio_input_focus_positive",
        "negativeName": "os_virtio_input_focus_negative",
        "expectedMarker": "TURKOS/OS/K2260: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yalnız güncel hedef olayı alır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski focus session replay” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2260"
    },
    {
      "id": "K2261",
      "number": 2261,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.surface",
      "stage": "contract",
      "title": "Paylaşılan yüzey sözleşmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Surface boy format quota doğrulanır.",
      "action": "“Paylaşılan yüzey sözleşmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Surface boy format quota doğrulanır. “İki farklı kullanıcı yüzeyi” kabulü ile “Aşırı boy veya yabancı buffer” reddini aynı sözleşmeye bağla.",
      "invariant": "Surface boy format quota doğrulanır",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_surface"
      },
      "dependencies": [
        "K2260"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı kullanıcı yüzeyi",
      "counterexample": "Aşırı boy veya yabancı buffer",
      "guestAcceptance": "Yanlış yüzey map edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_surface_positive",
        "negativeName": "os_compositor_surface_negative",
        "expectedMarker": "TURKOS/OS/K2265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Surface boy format quota doğrulanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Aşırı boy veya yabancı buffer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2261"
    },
    {
      "id": "K2262",
      "number": 2262,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.surface",
      "stage": "implementation",
      "title": "Paylaşılan yüzey sözleşmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Surface boy format quota doğrulanır.",
      "action": "userspace/src/compositor.rs hedefinde os_compositor_surface yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Surface boy format quota doğrulanır",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_surface"
      },
      "dependencies": [
        "K2261"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı kullanıcı yüzeyi",
      "counterexample": "Aşırı boy veya yabancı buffer",
      "guestAcceptance": "Yanlış yüzey map edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_surface_positive",
        "negativeName": "os_compositor_surface_negative",
        "expectedMarker": "TURKOS/OS/K2265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki farklı kullanıcı yüzeyi ile Aşırı boy veya yabancı buffer ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Aşırı boy veya yabancı buffer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2262"
    },
    {
      "id": "K2263",
      "number": 2263,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.surface",
      "stage": "positive",
      "title": "Paylaşılan yüzey sözleşmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Surface boy format quota doğrulanır.",
      "action": "os_compositor_surface_positive testini oluştur: “İki farklı kullanıcı yüzeyi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Surface boy format quota doğrulanır",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_surface"
      },
      "dependencies": [
        "K2262"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı kullanıcı yüzeyi",
      "counterexample": "Aşırı boy veya yabancı buffer",
      "guestAcceptance": "Yanlış yüzey map edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_surface_positive",
        "negativeName": "os_compositor_surface_negative",
        "expectedMarker": "TURKOS/OS/K2265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki farklı kullanıcı yüzeyi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Aşırı boy veya yabancı buffer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2263"
    },
    {
      "id": "K2264",
      "number": 2264,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.surface",
      "stage": "negative",
      "title": "Paylaşılan yüzey sözleşmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Surface boy format quota doğrulanır.",
      "action": "os_compositor_surface_negative testini oluştur: “Aşırı boy veya yabancı buffer”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Surface boy format quota doğrulanır",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_surface"
      },
      "dependencies": [
        "K2263"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı kullanıcı yüzeyi",
      "counterexample": "Aşırı boy veya yabancı buffer",
      "guestAcceptance": "Yanlış yüzey map edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_surface_positive",
        "negativeName": "os_compositor_surface_negative",
        "expectedMarker": "TURKOS/OS/K2265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aşırı boy veya yabancı buffer karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Aşırı boy veya yabancı buffer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2264"
    },
    {
      "id": "K2265",
      "number": 2265,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.surface",
      "stage": "integration",
      "title": "Paylaşılan yüzey sözleşmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Surface boy format quota doğrulanır.",
      "action": "Tek ürün Image'ında “Yanlış yüzey map edilmez” kabulünü koştur. scripts/os-acceptance/compositor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Surface boy format quota doğrulanır",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_surface"
      },
      "dependencies": [
        "K2264"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki farklı kullanıcı yüzeyi",
      "counterexample": "Aşırı boy veya yabancı buffer",
      "guestAcceptance": "Yanlış yüzey map edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_surface_positive",
        "negativeName": "os_compositor_surface_negative",
        "expectedMarker": "TURKOS/OS/K2265: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış yüzey map edilmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Aşırı boy veya yabancı buffer” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2265"
    },
    {
      "id": "K2266",
      "number": 2266,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.composition",
      "stage": "contract",
      "title": "Z sırası ve alfa birleşimi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Client kernel GPU kaynağını değiştiremez.",
      "action": "“Z sırası ve alfa birleşimi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Client kernel GPU kaynağını değiştiremez. “İki örtüşen yüzey” kabulü ile “Bozuk damage veya z index” reddini aynı sözleşmeye bağla.",
      "invariant": "Client kernel GPU kaynağını değiştiremez",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_composition"
      },
      "dependencies": [
        "K2265"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki örtüşen yüzey",
      "counterexample": "Bozuk damage veya z index",
      "guestAcceptance": "Beklenen kompozit frame hash",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_composition_positive",
        "negativeName": "os_compositor_composition_negative",
        "expectedMarker": "TURKOS/OS/K2270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Client kernel GPU kaynağını değiştiremez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bozuk damage veya z index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2266"
    },
    {
      "id": "K2267",
      "number": 2267,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.composition",
      "stage": "implementation",
      "title": "Z sırası ve alfa birleşimi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Client kernel GPU kaynağını değiştiremez.",
      "action": "userspace/src/compositor.rs hedefinde os_compositor_composition yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Client kernel GPU kaynağını değiştiremez",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_composition"
      },
      "dependencies": [
        "K2266"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki örtüşen yüzey",
      "counterexample": "Bozuk damage veya z index",
      "guestAcceptance": "Beklenen kompozit frame hash",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_composition_positive",
        "negativeName": "os_compositor_composition_negative",
        "expectedMarker": "TURKOS/OS/K2270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki örtüşen yüzey ile Bozuk damage veya z index ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bozuk damage veya z index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2267"
    },
    {
      "id": "K2268",
      "number": 2268,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.composition",
      "stage": "positive",
      "title": "Z sırası ve alfa birleşimi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Client kernel GPU kaynağını değiştiremez.",
      "action": "os_compositor_composition_positive testini oluştur: “İki örtüşen yüzey”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Client kernel GPU kaynağını değiştiremez",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_composition"
      },
      "dependencies": [
        "K2267"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki örtüşen yüzey",
      "counterexample": "Bozuk damage veya z index",
      "guestAcceptance": "Beklenen kompozit frame hash",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_composition_positive",
        "negativeName": "os_compositor_composition_negative",
        "expectedMarker": "TURKOS/OS/K2270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki örtüşen yüzey girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bozuk damage veya z index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2268"
    },
    {
      "id": "K2269",
      "number": 2269,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.composition",
      "stage": "negative",
      "title": "Z sırası ve alfa birleşimi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Client kernel GPU kaynağını değiştiremez.",
      "action": "os_compositor_composition_negative testini oluştur: “Bozuk damage veya z index”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Client kernel GPU kaynağını değiştiremez",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_composition"
      },
      "dependencies": [
        "K2268"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki örtüşen yüzey",
      "counterexample": "Bozuk damage veya z index",
      "guestAcceptance": "Beklenen kompozit frame hash",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_composition_positive",
        "negativeName": "os_compositor_composition_negative",
        "expectedMarker": "TURKOS/OS/K2270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bozuk damage veya z index karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bozuk damage veya z index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2269"
    },
    {
      "id": "K2270",
      "number": 2270,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.composition",
      "stage": "integration",
      "title": "Z sırası ve alfa birleşimi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Client kernel GPU kaynağını değiştiremez.",
      "action": "Tek ürün Image'ında “Beklenen kompozit frame hash” kabulünü koştur. scripts/os-acceptance/compositor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Client kernel GPU kaynağını değiştiremez",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_composition"
      },
      "dependencies": [
        "K2269"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "İki örtüşen yüzey",
      "counterexample": "Bozuk damage veya z index",
      "guestAcceptance": "Beklenen kompozit frame hash",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_composition_positive",
        "negativeName": "os_compositor_composition_negative",
        "expectedMarker": "TURKOS/OS/K2270: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Beklenen kompozit frame hash; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bozuk damage veya z index” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2270"
    },
    {
      "id": "K2271",
      "number": 2271,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.session",
      "stage": "contract",
      "title": "Pencere oturum ve nesil · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Ölü pencerenin input yüzeyi reuse olmaz.",
      "action": "“Pencere oturum ve nesil” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ölü pencerenin input yüzeyi reuse olmaz. “Client kapanır yeni pencere” kabulü ile “Eski window id mesajı” reddini aynı sözleşmeye bağla.",
      "invariant": "Ölü pencerenin input yüzeyi reuse olmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_session"
      },
      "dependencies": [
        "K2270"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Client kapanır yeni pencere",
      "counterexample": "Eski window id mesajı",
      "guestAcceptance": "Yeni pencere eski mesajı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_session_positive",
        "negativeName": "os_compositor_session_negative",
        "expectedMarker": "TURKOS/OS/K2275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ölü pencerenin input yüzeyi reuse olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski window id mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2271"
    },
    {
      "id": "K2272",
      "number": 2272,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.session",
      "stage": "implementation",
      "title": "Pencere oturum ve nesil · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Ölü pencerenin input yüzeyi reuse olmaz.",
      "action": "userspace/src/compositor.rs hedefinde os_compositor_session yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ölü pencerenin input yüzeyi reuse olmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_session"
      },
      "dependencies": [
        "K2271"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Client kapanır yeni pencere",
      "counterexample": "Eski window id mesajı",
      "guestAcceptance": "Yeni pencere eski mesajı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_session_positive",
        "negativeName": "os_compositor_session_negative",
        "expectedMarker": "TURKOS/OS/K2275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Client kapanır yeni pencere ile Eski window id mesajı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski window id mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2272"
    },
    {
      "id": "K2273",
      "number": 2273,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.session",
      "stage": "positive",
      "title": "Pencere oturum ve nesil · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Ölü pencerenin input yüzeyi reuse olmaz.",
      "action": "os_compositor_session_positive testini oluştur: “Client kapanır yeni pencere”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ölü pencerenin input yüzeyi reuse olmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_session"
      },
      "dependencies": [
        "K2272"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Client kapanır yeni pencere",
      "counterexample": "Eski window id mesajı",
      "guestAcceptance": "Yeni pencere eski mesajı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_session_positive",
        "negativeName": "os_compositor_session_negative",
        "expectedMarker": "TURKOS/OS/K2275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Client kapanır yeni pencere girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski window id mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2273"
    },
    {
      "id": "K2274",
      "number": 2274,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.session",
      "stage": "negative",
      "title": "Pencere oturum ve nesil · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Ölü pencerenin input yüzeyi reuse olmaz.",
      "action": "os_compositor_session_negative testini oluştur: “Eski window id mesajı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ölü pencerenin input yüzeyi reuse olmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_session"
      },
      "dependencies": [
        "K2273"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Client kapanır yeni pencere",
      "counterexample": "Eski window id mesajı",
      "guestAcceptance": "Yeni pencere eski mesajı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_session_positive",
        "negativeName": "os_compositor_session_negative",
        "expectedMarker": "TURKOS/OS/K2275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski window id mesajı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski window id mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2274"
    },
    {
      "id": "K2275",
      "number": 2275,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.session",
      "stage": "integration",
      "title": "Pencere oturum ve nesil · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Ölü pencerenin input yüzeyi reuse olmaz.",
      "action": "Tek ürün Image'ında “Yeni pencere eski mesajı reddeder” kabulünü koştur. scripts/os-acceptance/compositor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ölü pencerenin input yüzeyi reuse olmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_session"
      },
      "dependencies": [
        "K2274"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Client kapanır yeni pencere",
      "counterexample": "Eski window id mesajı",
      "guestAcceptance": "Yeni pencere eski mesajı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_session_positive",
        "negativeName": "os_compositor_session_negative",
        "expectedMarker": "TURKOS/OS/K2275: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni pencere eski mesajı reddeder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski window id mesajı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2275"
    },
    {
      "id": "K2276",
      "number": 2276,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.limits",
      "stage": "contract",
      "title": "UI CPU ve yüzey sınırları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Sonsuz redraw diğer uygulamayı aç bırakmaz.",
      "action": "“UI CPU ve yüzey sınırları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Sonsuz redraw diğer uygulamayı aç bırakmaz. “Üç farklı redraw hızı” kabulü ile “Bir client frame fırtınası” reddini aynı sözleşmeye bağla.",
      "invariant": "Sonsuz redraw diğer uygulamayı aç bırakmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_limits"
      },
      "dependencies": [
        "K2275"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Üç farklı redraw hızı",
      "counterexample": "Bir client frame fırtınası",
      "guestAcceptance": "Throttle drop ve ilerleme raporu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_limits_positive",
        "negativeName": "os_compositor_limits_negative",
        "expectedMarker": "TURKOS/OS/K2280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Sonsuz redraw diğer uygulamayı aç bırakmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir client frame fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2276"
    },
    {
      "id": "K2277",
      "number": 2277,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.limits",
      "stage": "implementation",
      "title": "UI CPU ve yüzey sınırları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Sonsuz redraw diğer uygulamayı aç bırakmaz.",
      "action": "userspace/src/compositor.rs hedefinde os_compositor_limits yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/ipc.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Sonsuz redraw diğer uygulamayı aç bırakmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_limits"
      },
      "dependencies": [
        "K2276"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Üç farklı redraw hızı",
      "counterexample": "Bir client frame fırtınası",
      "guestAcceptance": "Throttle drop ve ilerleme raporu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_limits_positive",
        "negativeName": "os_compositor_limits_negative",
        "expectedMarker": "TURKOS/OS/K2280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç farklı redraw hızı ile Bir client frame fırtınası ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir client frame fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2277"
    },
    {
      "id": "K2278",
      "number": 2278,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.limits",
      "stage": "positive",
      "title": "UI CPU ve yüzey sınırları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Sonsuz redraw diğer uygulamayı aç bırakmaz.",
      "action": "os_compositor_limits_positive testini oluştur: “Üç farklı redraw hızı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Sonsuz redraw diğer uygulamayı aç bırakmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_limits"
      },
      "dependencies": [
        "K2277"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Üç farklı redraw hızı",
      "counterexample": "Bir client frame fırtınası",
      "guestAcceptance": "Throttle drop ve ilerleme raporu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_limits_positive",
        "negativeName": "os_compositor_limits_negative",
        "expectedMarker": "TURKOS/OS/K2280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç farklı redraw hızı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir client frame fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2278"
    },
    {
      "id": "K2279",
      "number": 2279,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.limits",
      "stage": "negative",
      "title": "UI CPU ve yüzey sınırları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Sonsuz redraw diğer uygulamayı aç bırakmaz.",
      "action": "os_compositor_limits_negative testini oluştur: “Bir client frame fırtınası”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Sonsuz redraw diğer uygulamayı aç bırakmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_limits"
      },
      "dependencies": [
        "K2278"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Üç farklı redraw hızı",
      "counterexample": "Bir client frame fırtınası",
      "guestAcceptance": "Throttle drop ve ilerleme raporu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_limits_positive",
        "negativeName": "os_compositor_limits_negative",
        "expectedMarker": "TURKOS/OS/K2280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir client frame fırtınası karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir client frame fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2279"
    },
    {
      "id": "K2280",
      "number": 2280,
      "phase": 17,
      "module": "compositor",
      "feature": "compositor.limits",
      "stage": "integration",
      "title": "UI CPU ve yüzey sınırları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Sonsuz redraw diğer uygulamayı aç bırakmaz.",
      "action": "Tek ürün Image'ında “Throttle drop ve ilerleme raporu” kabulünü koştur. scripts/os-acceptance/compositor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Sonsuz redraw diğer uygulamayı aç bırakmaz",
      "source": {
        "target": "userspace/src/compositor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/ipc.rs",
        "existingReferenceSha256": "28d8caeedf7ab230df1edaa327dc5235bca2b386eacc567d1e50d25303ed2d1a",
        "symbol": "os_compositor_limits"
      },
      "dependencies": [
        "K2279"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Üç farklı redraw hızı",
      "counterexample": "Bir client frame fırtınası",
      "guestAcceptance": "Throttle drop ve ilerleme raporu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/compositor.rs",
        "harness": "scripts/os-acceptance/compositor.mjs",
        "positiveName": "os_compositor_limits_positive",
        "negativeName": "os_compositor_limits_negative",
        "expectedMarker": "TURKOS/OS/K2280: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Throttle drop ve ilerleme raporu; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir client frame fırtınası” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2280"
    },
    {
      "id": "K2281",
      "number": 2281,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.pty",
      "stage": "contract",
      "title": "Pseudo terminal byte akışı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: PTY taraf ömrü ve backpressure açıktır.",
      "action": "“Pseudo terminal byte akışı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: PTY taraf ömrü ve backpressure açıktır. “Shell reader writer” kabulü ile “Reader kapanır writer dolu” reddini aynı sözleşmeye bağla.",
      "invariant": "PTY taraf ömrü ve backpressure açıktır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_pty"
      },
      "dependencies": [
        "K2280"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shell reader writer",
      "counterexample": "Reader kapanır writer dolu",
      "guestAcceptance": "EOF hata ve wake tek teslim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_pty_positive",
        "negativeName": "os_guest_terminal_pty_negative",
        "expectedMarker": "TURKOS/OS/K2285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu PTY taraf ömrü ve backpressure açıktır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Reader kapanır writer dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2281"
    },
    {
      "id": "K2282",
      "number": 2282,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.pty",
      "stage": "implementation",
      "title": "Pseudo terminal byte akışı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: PTY taraf ömrü ve backpressure açıktır.",
      "action": "userspace/src/guest_terminal.rs hedefinde os_guest_terminal_pty yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "PTY taraf ömrü ve backpressure açıktır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_pty"
      },
      "dependencies": [
        "K2281"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shell reader writer",
      "counterexample": "Reader kapanır writer dolu",
      "guestAcceptance": "EOF hata ve wake tek teslim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_pty_positive",
        "negativeName": "os_guest_terminal_pty_negative",
        "expectedMarker": "TURKOS/OS/K2285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Shell reader writer ile Reader kapanır writer dolu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Reader kapanır writer dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2282"
    },
    {
      "id": "K2283",
      "number": 2283,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.pty",
      "stage": "positive",
      "title": "Pseudo terminal byte akışı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: PTY taraf ömrü ve backpressure açıktır.",
      "action": "os_guest_terminal_pty_positive testini oluştur: “Shell reader writer”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "PTY taraf ömrü ve backpressure açıktır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_pty"
      },
      "dependencies": [
        "K2282"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shell reader writer",
      "counterexample": "Reader kapanır writer dolu",
      "guestAcceptance": "EOF hata ve wake tek teslim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_pty_positive",
        "negativeName": "os_guest_terminal_pty_negative",
        "expectedMarker": "TURKOS/OS/K2285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Shell reader writer girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Reader kapanır writer dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2283"
    },
    {
      "id": "K2284",
      "number": 2284,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.pty",
      "stage": "negative",
      "title": "Pseudo terminal byte akışı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: PTY taraf ömrü ve backpressure açıktır.",
      "action": "os_guest_terminal_pty_negative testini oluştur: “Reader kapanır writer dolu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "PTY taraf ömrü ve backpressure açıktır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_pty"
      },
      "dependencies": [
        "K2283"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shell reader writer",
      "counterexample": "Reader kapanır writer dolu",
      "guestAcceptance": "EOF hata ve wake tek teslim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_pty_positive",
        "negativeName": "os_guest_terminal_pty_negative",
        "expectedMarker": "TURKOS/OS/K2285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Reader kapanır writer dolu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Reader kapanır writer dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2284"
    },
    {
      "id": "K2285",
      "number": 2285,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.pty",
      "stage": "integration",
      "title": "Pseudo terminal byte akışı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: PTY taraf ömrü ve backpressure açıktır.",
      "action": "Tek ürün Image'ında “EOF hata ve wake tek teslim” kabulünü koştur. scripts/os-acceptance/guest_terminal.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "PTY taraf ömrü ve backpressure açıktır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_pty"
      },
      "dependencies": [
        "K2284"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Shell reader writer",
      "counterexample": "Reader kapanır writer dolu",
      "guestAcceptance": "EOF hata ve wake tek teslim",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_pty_positive",
        "negativeName": "os_guest_terminal_pty_negative",
        "expectedMarker": "TURKOS/OS/K2285: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "EOF hata ve wake tek teslim; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Reader kapanır writer dolu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2285"
    },
    {
      "id": "K2286",
      "number": 2286,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.terminal_protocol",
      "stage": "contract",
      "title": "Sınırlı ANSI terminal · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Desteklenmeyen escape bounded reddedilir.",
      "action": "“Sınırlı ANSI terminal” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Desteklenmeyen escape bounded reddedilir. “Cursor renk ve clear” kabulü ile “Sonsuz escape parametresi” reddini aynı sözleşmeye bağla.",
      "invariant": "Desteklenmeyen escape bounded reddedilir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_terminal_protocol"
      },
      "dependencies": [
        "K2285"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Cursor renk ve clear",
      "counterexample": "Sonsuz escape parametresi",
      "guestAcceptance": "Terminal parser paniksiz devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_terminal_protocol_positive",
        "negativeName": "os_guest_terminal_terminal_protocol_negative",
        "expectedMarker": "TURKOS/OS/K2290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Desteklenmeyen escape bounded reddedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sonsuz escape parametresi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2286"
    },
    {
      "id": "K2287",
      "number": 2287,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.terminal_protocol",
      "stage": "implementation",
      "title": "Sınırlı ANSI terminal · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Desteklenmeyen escape bounded reddedilir.",
      "action": "userspace/src/guest_terminal.rs hedefinde os_guest_terminal_terminal_protocol yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Desteklenmeyen escape bounded reddedilir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_terminal_protocol"
      },
      "dependencies": [
        "K2286"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Cursor renk ve clear",
      "counterexample": "Sonsuz escape parametresi",
      "guestAcceptance": "Terminal parser paniksiz devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_terminal_protocol_positive",
        "negativeName": "os_guest_terminal_terminal_protocol_negative",
        "expectedMarker": "TURKOS/OS/K2290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Cursor renk ve clear ile Sonsuz escape parametresi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sonsuz escape parametresi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2287"
    },
    {
      "id": "K2288",
      "number": 2288,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.terminal_protocol",
      "stage": "positive",
      "title": "Sınırlı ANSI terminal · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Desteklenmeyen escape bounded reddedilir.",
      "action": "os_guest_terminal_terminal_protocol_positive testini oluştur: “Cursor renk ve clear”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Desteklenmeyen escape bounded reddedilir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_terminal_protocol"
      },
      "dependencies": [
        "K2287"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Cursor renk ve clear",
      "counterexample": "Sonsuz escape parametresi",
      "guestAcceptance": "Terminal parser paniksiz devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_terminal_protocol_positive",
        "negativeName": "os_guest_terminal_terminal_protocol_negative",
        "expectedMarker": "TURKOS/OS/K2290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Cursor renk ve clear girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sonsuz escape parametresi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2288"
    },
    {
      "id": "K2289",
      "number": 2289,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.terminal_protocol",
      "stage": "negative",
      "title": "Sınırlı ANSI terminal · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Desteklenmeyen escape bounded reddedilir.",
      "action": "os_guest_terminal_terminal_protocol_negative testini oluştur: “Sonsuz escape parametresi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Desteklenmeyen escape bounded reddedilir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_terminal_protocol"
      },
      "dependencies": [
        "K2288"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Cursor renk ve clear",
      "counterexample": "Sonsuz escape parametresi",
      "guestAcceptance": "Terminal parser paniksiz devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_terminal_protocol_positive",
        "negativeName": "os_guest_terminal_terminal_protocol_negative",
        "expectedMarker": "TURKOS/OS/K2290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sonsuz escape parametresi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sonsuz escape parametresi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2289"
    },
    {
      "id": "K2290",
      "number": 2290,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.terminal_protocol",
      "stage": "integration",
      "title": "Sınırlı ANSI terminal · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Desteklenmeyen escape bounded reddedilir.",
      "action": "Tek ürün Image'ında “Terminal parser paniksiz devam” kabulünü koştur. scripts/os-acceptance/guest_terminal.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Desteklenmeyen escape bounded reddedilir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_terminal_protocol"
      },
      "dependencies": [
        "K2289"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Cursor renk ve clear",
      "counterexample": "Sonsuz escape parametresi",
      "guestAcceptance": "Terminal parser paniksiz devam",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_terminal_protocol_positive",
        "negativeName": "os_guest_terminal_terminal_protocol_negative",
        "expectedMarker": "TURKOS/OS/K2290: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Terminal parser paniksiz devam; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sonsuz escape parametresi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2290"
    },
    {
      "id": "K2291",
      "number": 2291,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.semantics",
      "stage": "contract",
      "title": "Metin odak erişim ağacı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Piksel test insan erişim incelemesi değildir.",
      "action": "“Metin odak erişim ağacı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Piksel test insan erişim incelemesi değildir. “Başlık metin cursor düğümleri” kabulü ile “Sadece screenshot PASS kaydı” reddini aynı sözleşmeye bağla.",
      "invariant": "Piksel test insan erişim incelemesi değildir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_semantics"
      },
      "dependencies": [
        "K2290"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Başlık metin cursor düğümleri",
      "counterexample": "Sadece screenshot PASS kaydı",
      "guestAcceptance": "Semantik ağaç ayrı tanı üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_semantics_positive",
        "negativeName": "os_guest_terminal_semantics_negative",
        "expectedMarker": "TURKOS/OS/K2295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Piksel test insan erişim incelemesi değildir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sadece screenshot PASS kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2291"
    },
    {
      "id": "K2292",
      "number": 2292,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.semantics",
      "stage": "implementation",
      "title": "Metin odak erişim ağacı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Piksel test insan erişim incelemesi değildir.",
      "action": "userspace/src/guest_terminal.rs hedefinde os_guest_terminal_semantics yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Piksel test insan erişim incelemesi değildir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_semantics"
      },
      "dependencies": [
        "K2291"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Başlık metin cursor düğümleri",
      "counterexample": "Sadece screenshot PASS kaydı",
      "guestAcceptance": "Semantik ağaç ayrı tanı üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_semantics_positive",
        "negativeName": "os_guest_terminal_semantics_negative",
        "expectedMarker": "TURKOS/OS/K2295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Başlık metin cursor düğümleri ile Sadece screenshot PASS kaydı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sadece screenshot PASS kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2292"
    },
    {
      "id": "K2293",
      "number": 2293,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.semantics",
      "stage": "positive",
      "title": "Metin odak erişim ağacı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Piksel test insan erişim incelemesi değildir.",
      "action": "os_guest_terminal_semantics_positive testini oluştur: “Başlık metin cursor düğümleri”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Piksel test insan erişim incelemesi değildir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_semantics"
      },
      "dependencies": [
        "K2292"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Başlık metin cursor düğümleri",
      "counterexample": "Sadece screenshot PASS kaydı",
      "guestAcceptance": "Semantik ağaç ayrı tanı üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_semantics_positive",
        "negativeName": "os_guest_terminal_semantics_negative",
        "expectedMarker": "TURKOS/OS/K2295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Başlık metin cursor düğümleri girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sadece screenshot PASS kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2293"
    },
    {
      "id": "K2294",
      "number": 2294,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.semantics",
      "stage": "negative",
      "title": "Metin odak erişim ağacı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Piksel test insan erişim incelemesi değildir.",
      "action": "os_guest_terminal_semantics_negative testini oluştur: “Sadece screenshot PASS kaydı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Piksel test insan erişim incelemesi değildir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_semantics"
      },
      "dependencies": [
        "K2293"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Başlık metin cursor düğümleri",
      "counterexample": "Sadece screenshot PASS kaydı",
      "guestAcceptance": "Semantik ağaç ayrı tanı üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_semantics_positive",
        "negativeName": "os_guest_terminal_semantics_negative",
        "expectedMarker": "TURKOS/OS/K2295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sadece screenshot PASS kaydı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sadece screenshot PASS kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2294"
    },
    {
      "id": "K2295",
      "number": 2295,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.semantics",
      "stage": "integration",
      "title": "Metin odak erişim ağacı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: Piksel test insan erişim incelemesi değildir.",
      "action": "Tek ürün Image'ında “Semantik ağaç ayrı tanı üretir” kabulünü koştur. scripts/os-acceptance/guest_terminal.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Piksel test insan erişim incelemesi değildir",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_semantics"
      },
      "dependencies": [
        "K2294"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Başlık metin cursor düğümleri",
      "counterexample": "Sadece screenshot PASS kaydı",
      "guestAcceptance": "Semantik ağaç ayrı tanı üretir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_semantics_positive",
        "negativeName": "os_guest_terminal_semantics_negative",
        "expectedMarker": "TURKOS/OS/K2295: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Semantik ağaç ayrı tanı üretir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sadece screenshot PASS kaydı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2295"
    },
    {
      "id": "K2296",
      "number": 2296,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.human_review",
      "stage": "contract",
      "title": "Gerçek kullanıcı ve okuyucu oturumu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: İnsan oturumu otomasyondan ayrılır.",
      "action": "“Gerçek kullanıcı ve okuyucu oturumu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: İnsan oturumu otomasyondan ayrılır. “Gerçek reviewer klavye metin okur” kabulü ile “AI üretilmiş reviewer beyanı” reddini aynı sözleşmeye bağla.",
      "invariant": "İnsan oturumu otomasyondan ayrılır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_human_review"
      },
      "dependencies": [
        "K2295"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Gerçek reviewer klavye metin okur",
      "counterexample": "AI üretilmiş reviewer beyanı",
      "guestAcceptance": "K589 kapanışı gerçek kanıta bağlı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_human_review_positive",
        "negativeName": "os_guest_terminal_human_review_negative",
        "expectedMarker": "TURKOS/OS/K2300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu İnsan oturumu otomasyondan ayrılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“AI üretilmiş reviewer beyanı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2296"
    },
    {
      "id": "K2297",
      "number": 2297,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.human_review",
      "stage": "implementation",
      "title": "Gerçek kullanıcı ve okuyucu oturumu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: İnsan oturumu otomasyondan ayrılır.",
      "action": "userspace/src/guest_terminal.rs hedefinde os_guest_terminal_human_review yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "İnsan oturumu otomasyondan ayrılır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_human_review"
      },
      "dependencies": [
        "K2296"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Gerçek reviewer klavye metin okur",
      "counterexample": "AI üretilmiş reviewer beyanı",
      "guestAcceptance": "K589 kapanışı gerçek kanıta bağlı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_human_review_positive",
        "negativeName": "os_guest_terminal_human_review_negative",
        "expectedMarker": "TURKOS/OS/K2300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Gerçek reviewer klavye metin okur ile AI üretilmiş reviewer beyanı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“AI üretilmiş reviewer beyanı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2297"
    },
    {
      "id": "K2298",
      "number": 2298,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.human_review",
      "stage": "positive",
      "title": "Gerçek kullanıcı ve okuyucu oturumu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: İnsan oturumu otomasyondan ayrılır.",
      "action": "os_guest_terminal_human_review_positive testini oluştur: “Gerçek reviewer klavye metin okur”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "İnsan oturumu otomasyondan ayrılır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_human_review"
      },
      "dependencies": [
        "K2297"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Gerçek reviewer klavye metin okur",
      "counterexample": "AI üretilmiş reviewer beyanı",
      "guestAcceptance": "K589 kapanışı gerçek kanıta bağlı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_human_review_positive",
        "negativeName": "os_guest_terminal_human_review_negative",
        "expectedMarker": "TURKOS/OS/K2300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Gerçek reviewer klavye metin okur girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“AI üretilmiş reviewer beyanı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2298"
    },
    {
      "id": "K2299",
      "number": 2299,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.human_review",
      "stage": "negative",
      "title": "Gerçek kullanıcı ve okuyucu oturumu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: İnsan oturumu otomasyondan ayrılır.",
      "action": "os_guest_terminal_human_review_negative testini oluştur: “AI üretilmiş reviewer beyanı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "İnsan oturumu otomasyondan ayrılır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_human_review"
      },
      "dependencies": [
        "K2298"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Gerçek reviewer klavye metin okur",
      "counterexample": "AI üretilmiş reviewer beyanı",
      "guestAcceptance": "K589 kapanışı gerçek kanıta bağlı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_human_review_positive",
        "negativeName": "os_guest_terminal_human_review_negative",
        "expectedMarker": "TURKOS/OS/K2300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "AI üretilmiş reviewer beyanı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“AI üretilmiş reviewer beyanı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2299"
    },
    {
      "id": "K2300",
      "number": 2300,
      "phase": 17,
      "module": "guest_terminal",
      "feature": "guest_terminal.human_review",
      "stage": "integration",
      "title": "Gerçek kullanıcı ve okuyucu oturumu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Host GUIde görülen EDK2 ekranı TurkOS grafik sürücüsü değildir. Bu faz gerçek konuk pikseli ve input protokolünü kurar. Bu hamlenin koruduğu değişmez: İnsan oturumu otomasyondan ayrılır.",
      "action": "Tek ürün Image'ında “K589 kapanışı gerçek kanıta bağlı kalır” kabulünü koştur. scripts/os-acceptance/guest_terminal.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "İnsan oturumu otomasyondan ayrılır",
      "source": {
        "target": "userspace/src/guest_terminal.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_guest_terminal_human_review"
      },
      "dependencies": [
        "K2299"
      ],
      "phasePrerequisites": [
        16
      ],
      "positive": "Gerçek reviewer klavye metin okur",
      "counterexample": "AI üretilmiş reviewer beyanı",
      "guestAcceptance": "K589 kapanışı gerçek kanıta bağlı kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/guest_terminal.rs",
        "harness": "scripts/os-acceptance/guest_terminal.mjs",
        "positiveName": "os_guest_terminal_human_review_positive",
        "negativeName": "os_guest_terminal_human_review_negative",
        "expectedMarker": "TURKOS/OS/K2300: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "K589 kapanışı gerçek kanıta bağlı kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“AI üretilmiş reviewer beyanı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-17#k2300"
    },
    {
      "id": "K2301",
      "number": 2301,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.copy",
      "stage": "contract",
      "title": "Cp benzeri bounded kopya · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef partial durumunun politikası açıktır.",
      "action": "“Cp benzeri bounded kopya” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hedef partial durumunun politikası açıktır. “513 bayt iki mount arası” kabulü ile “Ortada ENOSPC veya EIO” reddini aynı sözleşmeye bağla.",
      "invariant": "Hedef partial durumunun politikası açıktır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_copy"
      },
      "dependencies": [],
      "phasePrerequisites": [
        17
      ],
      "positive": "513 bayt iki mount arası",
      "counterexample": "Ortada ENOSPC veya EIO",
      "guestAcceptance": "Kaynak hash korunur hedef hata görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_copy_positive",
        "negativeName": "os_file_tools_copy_negative",
        "expectedMarker": "TURKOS/OS/K2305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hedef partial durumunun politikası açıktır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Ortada ENOSPC veya EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2301"
    },
    {
      "id": "K2302",
      "number": 2302,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.copy",
      "stage": "implementation",
      "title": "Cp benzeri bounded kopya · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef partial durumunun politikası açıktır.",
      "action": "userspace/src/file_tools.rs hedefinde os_file_tools_copy yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hedef partial durumunun politikası açıktır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_copy"
      },
      "dependencies": [
        "K2301"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "513 bayt iki mount arası",
      "counterexample": "Ortada ENOSPC veya EIO",
      "guestAcceptance": "Kaynak hash korunur hedef hata görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_copy_positive",
        "negativeName": "os_file_tools_copy_negative",
        "expectedMarker": "TURKOS/OS/K2305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 513 bayt iki mount arası ile Ortada ENOSPC veya EIO ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Ortada ENOSPC veya EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2302"
    },
    {
      "id": "K2303",
      "number": 2303,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.copy",
      "stage": "positive",
      "title": "Cp benzeri bounded kopya · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef partial durumunun politikası açıktır.",
      "action": "os_file_tools_copy_positive testini oluştur: “513 bayt iki mount arası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hedef partial durumunun politikası açıktır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_copy"
      },
      "dependencies": [
        "K2302"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "513 bayt iki mount arası",
      "counterexample": "Ortada ENOSPC veya EIO",
      "guestAcceptance": "Kaynak hash korunur hedef hata görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_copy_positive",
        "negativeName": "os_file_tools_copy_negative",
        "expectedMarker": "TURKOS/OS/K2305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 513 bayt iki mount arası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Ortada ENOSPC veya EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2303"
    },
    {
      "id": "K2304",
      "number": 2304,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.copy",
      "stage": "negative",
      "title": "Cp benzeri bounded kopya · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef partial durumunun politikası açıktır.",
      "action": "os_file_tools_copy_negative testini oluştur: “Ortada ENOSPC veya EIO”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hedef partial durumunun politikası açıktır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_copy"
      },
      "dependencies": [
        "K2303"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "513 bayt iki mount arası",
      "counterexample": "Ortada ENOSPC veya EIO",
      "guestAcceptance": "Kaynak hash korunur hedef hata görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_copy_positive",
        "negativeName": "os_file_tools_copy_negative",
        "expectedMarker": "TURKOS/OS/K2305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ortada ENOSPC veya EIO karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Ortada ENOSPC veya EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2304"
    },
    {
      "id": "K2305",
      "number": 2305,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.copy",
      "stage": "integration",
      "title": "Cp benzeri bounded kopya · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef partial durumunun politikası açıktır.",
      "action": "Tek ürün Image'ında “Kaynak hash korunur hedef hata görünür” kabulünü koştur. scripts/os-acceptance/file_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hedef partial durumunun politikası açıktır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_copy"
      },
      "dependencies": [
        "K2304"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "513 bayt iki mount arası",
      "counterexample": "Ortada ENOSPC veya EIO",
      "guestAcceptance": "Kaynak hash korunur hedef hata görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_copy_positive",
        "negativeName": "os_file_tools_copy_negative",
        "expectedMarker": "TURKOS/OS/K2305: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kaynak hash korunur hedef hata görünür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Ortada ENOSPC veya EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2305"
    },
    {
      "id": "K2306",
      "number": 2306,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.move",
      "stage": "contract",
      "title": "Mv rename veya kopya ayrımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Farklı mount atomik rename sayılmaz.",
      "action": "“Mv rename veya kopya ayrımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Farklı mount atomik rename sayılmaz. “Aynı mount rename” kabulü ile “Farklı mountta kopya kesilir” reddini aynı sözleşmeye bağla.",
      "invariant": "Farklı mount atomik rename sayılmaz",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_move"
      },
      "dependencies": [
        "K2305"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Aynı mount rename",
      "counterexample": "Farklı mountta kopya kesilir",
      "guestAcceptance": "Cross mount sınırı açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_move_positive",
        "negativeName": "os_file_tools_move_negative",
        "expectedMarker": "TURKOS/OS/K2310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Farklı mount atomik rename sayılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Farklı mountta kopya kesilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2306"
    },
    {
      "id": "K2307",
      "number": 2307,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.move",
      "stage": "implementation",
      "title": "Mv rename veya kopya ayrımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Farklı mount atomik rename sayılmaz.",
      "action": "userspace/src/file_tools.rs hedefinde os_file_tools_move yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Farklı mount atomik rename sayılmaz",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_move"
      },
      "dependencies": [
        "K2306"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Aynı mount rename",
      "counterexample": "Farklı mountta kopya kesilir",
      "guestAcceptance": "Cross mount sınırı açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_move_positive",
        "negativeName": "os_file_tools_move_negative",
        "expectedMarker": "TURKOS/OS/K2310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı mount rename ile Farklı mountta kopya kesilir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Farklı mountta kopya kesilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2307"
    },
    {
      "id": "K2308",
      "number": 2308,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.move",
      "stage": "positive",
      "title": "Mv rename veya kopya ayrımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Farklı mount atomik rename sayılmaz.",
      "action": "os_file_tools_move_positive testini oluştur: “Aynı mount rename”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Farklı mount atomik rename sayılmaz",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_move"
      },
      "dependencies": [
        "K2307"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Aynı mount rename",
      "counterexample": "Farklı mountta kopya kesilir",
      "guestAcceptance": "Cross mount sınırı açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_move_positive",
        "negativeName": "os_file_tools_move_negative",
        "expectedMarker": "TURKOS/OS/K2310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı mount rename girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Farklı mountta kopya kesilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2308"
    },
    {
      "id": "K2309",
      "number": 2309,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.move",
      "stage": "negative",
      "title": "Mv rename veya kopya ayrımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Farklı mount atomik rename sayılmaz.",
      "action": "os_file_tools_move_negative testini oluştur: “Farklı mountta kopya kesilir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Farklı mount atomik rename sayılmaz",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_move"
      },
      "dependencies": [
        "K2308"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Aynı mount rename",
      "counterexample": "Farklı mountta kopya kesilir",
      "guestAcceptance": "Cross mount sınırı açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_move_positive",
        "negativeName": "os_file_tools_move_negative",
        "expectedMarker": "TURKOS/OS/K2310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Farklı mountta kopya kesilir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Farklı mountta kopya kesilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2309"
    },
    {
      "id": "K2310",
      "number": 2310,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.move",
      "stage": "integration",
      "title": "Mv rename veya kopya ayrımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Farklı mount atomik rename sayılmaz.",
      "action": "Tek ürün Image'ında “Cross mount sınırı açık raporlanır” kabulünü koştur. scripts/os-acceptance/file_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Farklı mount atomik rename sayılmaz",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_move"
      },
      "dependencies": [
        "K2309"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Aynı mount rename",
      "counterexample": "Farklı mountta kopya kesilir",
      "guestAcceptance": "Cross mount sınırı açık raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_move_positive",
        "negativeName": "os_file_tools_move_negative",
        "expectedMarker": "TURKOS/OS/K2310: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Cross mount sınırı açık raporlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Farklı mountta kopya kesilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2310"
    },
    {
      "id": "K2311",
      "number": 2311,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.remove",
      "stage": "contract",
      "title": "Rm yetki ve hedef doğrulama · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Kök özel aygıt kullanıcı onaysız silinmez.",
      "action": "“Rm yetki ve hedef doğrulama” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Kök özel aygıt kullanıcı onaysız silinmez. “Geçici dosya silme” kabulü ile “Root veya device yol isteği” reddini aynı sözleşmeye bağla.",
      "invariant": "Kök özel aygıt kullanıcı onaysız silinmez",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_remove"
      },
      "dependencies": [
        "K2310"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosya silme",
      "counterexample": "Root veya device yol isteği",
      "guestAcceptance": "Ret sonrası sistem dosyaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_remove_positive",
        "negativeName": "os_file_tools_remove_negative",
        "expectedMarker": "TURKOS/OS/K2315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Kök özel aygıt kullanıcı onaysız silinmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Root veya device yol isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2311"
    },
    {
      "id": "K2312",
      "number": 2312,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.remove",
      "stage": "implementation",
      "title": "Rm yetki ve hedef doğrulama · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Kök özel aygıt kullanıcı onaysız silinmez.",
      "action": "userspace/src/file_tools.rs hedefinde os_file_tools_remove yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Kök özel aygıt kullanıcı onaysız silinmez",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_remove"
      },
      "dependencies": [
        "K2311"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosya silme",
      "counterexample": "Root veya device yol isteği",
      "guestAcceptance": "Ret sonrası sistem dosyaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_remove_positive",
        "negativeName": "os_file_tools_remove_negative",
        "expectedMarker": "TURKOS/OS/K2315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçici dosya silme ile Root veya device yol isteği ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Root veya device yol isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2312"
    },
    {
      "id": "K2313",
      "number": 2313,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.remove",
      "stage": "positive",
      "title": "Rm yetki ve hedef doğrulama · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Kök özel aygıt kullanıcı onaysız silinmez.",
      "action": "os_file_tools_remove_positive testini oluştur: “Geçici dosya silme”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Kök özel aygıt kullanıcı onaysız silinmez",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_remove"
      },
      "dependencies": [
        "K2312"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosya silme",
      "counterexample": "Root veya device yol isteği",
      "guestAcceptance": "Ret sonrası sistem dosyaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_remove_positive",
        "negativeName": "os_file_tools_remove_negative",
        "expectedMarker": "TURKOS/OS/K2315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçici dosya silme girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Root veya device yol isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2313"
    },
    {
      "id": "K2314",
      "number": 2314,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.remove",
      "stage": "negative",
      "title": "Rm yetki ve hedef doğrulama · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Kök özel aygıt kullanıcı onaysız silinmez.",
      "action": "os_file_tools_remove_negative testini oluştur: “Root veya device yol isteği”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Kök özel aygıt kullanıcı onaysız silinmez",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_remove"
      },
      "dependencies": [
        "K2313"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosya silme",
      "counterexample": "Root veya device yol isteği",
      "guestAcceptance": "Ret sonrası sistem dosyaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_remove_positive",
        "negativeName": "os_file_tools_remove_negative",
        "expectedMarker": "TURKOS/OS/K2315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Root veya device yol isteği karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Root veya device yol isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2314"
    },
    {
      "id": "K2315",
      "number": 2315,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.remove",
      "stage": "integration",
      "title": "Rm yetki ve hedef doğrulama · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Kök özel aygıt kullanıcı onaysız silinmez.",
      "action": "Tek ürün Image'ında “Ret sonrası sistem dosyaları korunur” kabulünü koştur. scripts/os-acceptance/file_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Kök özel aygıt kullanıcı onaysız silinmez",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_remove"
      },
      "dependencies": [
        "K2314"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosya silme",
      "counterexample": "Root veya device yol isteği",
      "guestAcceptance": "Ret sonrası sistem dosyaları korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_remove_positive",
        "negativeName": "os_file_tools_remove_negative",
        "expectedMarker": "TURKOS/OS/K2315: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret sonrası sistem dosyaları korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Root veya device yol isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2315"
    },
    {
      "id": "K2316",
      "number": 2316,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.hash_tool",
      "stage": "contract",
      "title": "Dosya SHA256 aracı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Dosya byteı ve hata ayrılır.",
      "action": "“Dosya SHA256 aracı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Dosya byteı ve hata ayrılır. “Boş ve çok extent dosya” kabulü ile “Kısa I/O başarı sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Dosya byteı ve hata ayrılır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_hash_tool"
      },
      "dependencies": [
        "K2315"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Boş ve çok extent dosya",
      "counterexample": "Kısa I/O başarı sayılır",
      "guestAcceptance": "Bağımsız dosya hash oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_hash_tool_positive",
        "negativeName": "os_file_tools_hash_tool_negative",
        "expectedMarker": "TURKOS/OS/K2320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Dosya byteı ve hata ayrılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Kısa I/O başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2316"
    },
    {
      "id": "K2317",
      "number": 2317,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.hash_tool",
      "stage": "implementation",
      "title": "Dosya SHA256 aracı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Dosya byteı ve hata ayrılır.",
      "action": "userspace/src/file_tools.rs hedefinde os_file_tools_hash_tool yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/turkfs.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Dosya byteı ve hata ayrılır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_hash_tool"
      },
      "dependencies": [
        "K2316"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Boş ve çok extent dosya",
      "counterexample": "Kısa I/O başarı sayılır",
      "guestAcceptance": "Bağımsız dosya hash oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_hash_tool_positive",
        "negativeName": "os_file_tools_hash_tool_negative",
        "expectedMarker": "TURKOS/OS/K2320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Boş ve çok extent dosya ile Kısa I/O başarı sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Kısa I/O başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2317"
    },
    {
      "id": "K2318",
      "number": 2318,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.hash_tool",
      "stage": "positive",
      "title": "Dosya SHA256 aracı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Dosya byteı ve hata ayrılır.",
      "action": "os_file_tools_hash_tool_positive testini oluştur: “Boş ve çok extent dosya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Dosya byteı ve hata ayrılır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_hash_tool"
      },
      "dependencies": [
        "K2317"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Boş ve çok extent dosya",
      "counterexample": "Kısa I/O başarı sayılır",
      "guestAcceptance": "Bağımsız dosya hash oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_hash_tool_positive",
        "negativeName": "os_file_tools_hash_tool_negative",
        "expectedMarker": "TURKOS/OS/K2320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Boş ve çok extent dosya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Kısa I/O başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2318"
    },
    {
      "id": "K2319",
      "number": 2319,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.hash_tool",
      "stage": "negative",
      "title": "Dosya SHA256 aracı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Dosya byteı ve hata ayrılır.",
      "action": "os_file_tools_hash_tool_negative testini oluştur: “Kısa I/O başarı sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Dosya byteı ve hata ayrılır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_hash_tool"
      },
      "dependencies": [
        "K2318"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Boş ve çok extent dosya",
      "counterexample": "Kısa I/O başarı sayılır",
      "guestAcceptance": "Bağımsız dosya hash oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_hash_tool_positive",
        "negativeName": "os_file_tools_hash_tool_negative",
        "expectedMarker": "TURKOS/OS/K2320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kısa I/O başarı sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Kısa I/O başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2319"
    },
    {
      "id": "K2320",
      "number": 2320,
      "phase": 18,
      "module": "file_tools",
      "feature": "file_tools.hash_tool",
      "stage": "integration",
      "title": "Dosya SHA256 aracı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Dosya byteı ve hata ayrılır.",
      "action": "Tek ürün Image'ında “Bağımsız dosya hash oracle ile eşit” kabulünü koştur. scripts/os-acceptance/file_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Dosya byteı ve hata ayrılır",
      "source": {
        "target": "userspace/src/file_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/turkfs.rs",
        "existingReferenceSha256": "e99fa17ace72e2b8fc488e319b49fea5f5317152ae38c46ccb7564eb972d4104",
        "symbol": "os_file_tools_hash_tool"
      },
      "dependencies": [
        "K2319"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Boş ve çok extent dosya",
      "counterexample": "Kısa I/O başarı sayılır",
      "guestAcceptance": "Bağımsız dosya hash oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/file_tools.rs",
        "harness": "scripts/os-acceptance/file_tools.mjs",
        "positiveName": "os_file_tools_hash_tool_positive",
        "negativeName": "os_file_tools_hash_tool_negative",
        "expectedMarker": "TURKOS/OS/K2320: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bağımsız dosya hash oracle ile eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Kısa I/O başarı sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2320"
    },
    {
      "id": "K2321",
      "number": 2321,
      "phase": 18,
      "module": "editor",
      "feature": "editor.buffer",
      "stage": "contract",
      "title": "Editör UTF8 metin buffer · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Cursor byte değil geçerli metin sınırında durur.",
      "action": "“Editör UTF8 metin buffer” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Cursor byte değil geçerli metin sınırında durur. “Türkçe ekle sil hareket” kabulü ile “Çok baytın ortasında sil” reddini aynı sözleşmeye bağla.",
      "invariant": "Cursor byte değil geçerli metin sınırında durur",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_buffer"
      },
      "dependencies": [
        "K2320"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Türkçe ekle sil hareket",
      "counterexample": "Çok baytın ortasında sil",
      "guestAcceptance": "Metin geçerli UTF8 kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_buffer_positive",
        "negativeName": "os_editor_buffer_negative",
        "expectedMarker": "TURKOS/OS/K2325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Cursor byte değil geçerli metin sınırında durur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Çok baytın ortasında sil” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2321"
    },
    {
      "id": "K2322",
      "number": 2322,
      "phase": 18,
      "module": "editor",
      "feature": "editor.buffer",
      "stage": "implementation",
      "title": "Editör UTF8 metin buffer · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Cursor byte değil geçerli metin sınırında durur.",
      "action": "userspace/src/editor.rs hedefinde os_editor_buffer yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Cursor byte değil geçerli metin sınırında durur",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_buffer"
      },
      "dependencies": [
        "K2321"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Türkçe ekle sil hareket",
      "counterexample": "Çok baytın ortasında sil",
      "guestAcceptance": "Metin geçerli UTF8 kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_buffer_positive",
        "negativeName": "os_editor_buffer_negative",
        "expectedMarker": "TURKOS/OS/K2325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Türkçe ekle sil hareket ile Çok baytın ortasında sil ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Çok baytın ortasında sil” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2322"
    },
    {
      "id": "K2323",
      "number": 2323,
      "phase": 18,
      "module": "editor",
      "feature": "editor.buffer",
      "stage": "positive",
      "title": "Editör UTF8 metin buffer · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Cursor byte değil geçerli metin sınırında durur.",
      "action": "os_editor_buffer_positive testini oluştur: “Türkçe ekle sil hareket”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Cursor byte değil geçerli metin sınırında durur",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_buffer"
      },
      "dependencies": [
        "K2322"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Türkçe ekle sil hareket",
      "counterexample": "Çok baytın ortasında sil",
      "guestAcceptance": "Metin geçerli UTF8 kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_buffer_positive",
        "negativeName": "os_editor_buffer_negative",
        "expectedMarker": "TURKOS/OS/K2325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Türkçe ekle sil hareket girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Çok baytın ortasında sil” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2323"
    },
    {
      "id": "K2324",
      "number": 2324,
      "phase": 18,
      "module": "editor",
      "feature": "editor.buffer",
      "stage": "negative",
      "title": "Editör UTF8 metin buffer · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Cursor byte değil geçerli metin sınırında durur.",
      "action": "os_editor_buffer_negative testini oluştur: “Çok baytın ortasında sil”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Cursor byte değil geçerli metin sınırında durur",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_buffer"
      },
      "dependencies": [
        "K2323"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Türkçe ekle sil hareket",
      "counterexample": "Çok baytın ortasında sil",
      "guestAcceptance": "Metin geçerli UTF8 kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_buffer_positive",
        "negativeName": "os_editor_buffer_negative",
        "expectedMarker": "TURKOS/OS/K2325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Çok baytın ortasında sil karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Çok baytın ortasında sil” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2324"
    },
    {
      "id": "K2325",
      "number": 2325,
      "phase": 18,
      "module": "editor",
      "feature": "editor.buffer",
      "stage": "integration",
      "title": "Editör UTF8 metin buffer · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Cursor byte değil geçerli metin sınırında durur.",
      "action": "Tek ürün Image'ında “Metin geçerli UTF8 kalır” kabulünü koştur. scripts/os-acceptance/editor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Cursor byte değil geçerli metin sınırında durur",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_buffer"
      },
      "dependencies": [
        "K2324"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Türkçe ekle sil hareket",
      "counterexample": "Çok baytın ortasında sil",
      "guestAcceptance": "Metin geçerli UTF8 kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_buffer_positive",
        "negativeName": "os_editor_buffer_negative",
        "expectedMarker": "TURKOS/OS/K2325: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Metin geçerli UTF8 kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Çok baytın ortasında sil” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2325"
    },
    {
      "id": "K2326",
      "number": 2326,
      "phase": 18,
      "module": "editor",
      "feature": "editor.load_save",
      "stage": "contract",
      "title": "RO yükleme geçici kaydetme · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Save kaynak dosyayı partial ezmez.",
      "action": "“RO yükleme geçici kaydetme” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Save kaynak dosyayı partial ezmez. “Geçici dosyaya tam yazı” kabulü ile “Son flush EIO” reddini aynı sözleşmeye bağla.",
      "invariant": "Save kaynak dosyayı partial ezmez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_load_save"
      },
      "dependencies": [
        "K2325"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosyaya tam yazı",
      "counterexample": "Son flush EIO",
      "guestAcceptance": "Eski dosya veya açık unsaved durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_load_save_positive",
        "negativeName": "os_editor_load_save_negative",
        "expectedMarker": "TURKOS/OS/K2330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Save kaynak dosyayı partial ezmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Son flush EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2326"
    },
    {
      "id": "K2327",
      "number": 2327,
      "phase": 18,
      "module": "editor",
      "feature": "editor.load_save",
      "stage": "implementation",
      "title": "RO yükleme geçici kaydetme · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Save kaynak dosyayı partial ezmez.",
      "action": "userspace/src/editor.rs hedefinde os_editor_load_save yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Save kaynak dosyayı partial ezmez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_load_save"
      },
      "dependencies": [
        "K2326"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosyaya tam yazı",
      "counterexample": "Son flush EIO",
      "guestAcceptance": "Eski dosya veya açık unsaved durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_load_save_positive",
        "negativeName": "os_editor_load_save_negative",
        "expectedMarker": "TURKOS/OS/K2330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçici dosyaya tam yazı ile Son flush EIO ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Son flush EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2327"
    },
    {
      "id": "K2328",
      "number": 2328,
      "phase": 18,
      "module": "editor",
      "feature": "editor.load_save",
      "stage": "positive",
      "title": "RO yükleme geçici kaydetme · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Save kaynak dosyayı partial ezmez.",
      "action": "os_editor_load_save_positive testini oluştur: “Geçici dosyaya tam yazı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Save kaynak dosyayı partial ezmez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_load_save"
      },
      "dependencies": [
        "K2327"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosyaya tam yazı",
      "counterexample": "Son flush EIO",
      "guestAcceptance": "Eski dosya veya açık unsaved durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_load_save_positive",
        "negativeName": "os_editor_load_save_negative",
        "expectedMarker": "TURKOS/OS/K2330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçici dosyaya tam yazı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Son flush EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2328"
    },
    {
      "id": "K2329",
      "number": 2329,
      "phase": 18,
      "module": "editor",
      "feature": "editor.load_save",
      "stage": "negative",
      "title": "RO yükleme geçici kaydetme · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Save kaynak dosyayı partial ezmez.",
      "action": "os_editor_load_save_negative testini oluştur: “Son flush EIO”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Save kaynak dosyayı partial ezmez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_load_save"
      },
      "dependencies": [
        "K2328"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosyaya tam yazı",
      "counterexample": "Son flush EIO",
      "guestAcceptance": "Eski dosya veya açık unsaved durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_load_save_positive",
        "negativeName": "os_editor_load_save_negative",
        "expectedMarker": "TURKOS/OS/K2330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Son flush EIO karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Son flush EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2329"
    },
    {
      "id": "K2330",
      "number": 2330,
      "phase": 18,
      "module": "editor",
      "feature": "editor.load_save",
      "stage": "integration",
      "title": "RO yükleme geçici kaydetme · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Save kaynak dosyayı partial ezmez.",
      "action": "Tek ürün Image'ında “Eski dosya veya açık unsaved durum” kabulünü koştur. scripts/os-acceptance/editor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Save kaynak dosyayı partial ezmez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_load_save"
      },
      "dependencies": [
        "K2329"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici dosyaya tam yazı",
      "counterexample": "Son flush EIO",
      "guestAcceptance": "Eski dosya veya açık unsaved durum",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_load_save_positive",
        "negativeName": "os_editor_load_save_negative",
        "expectedMarker": "TURKOS/OS/K2330: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski dosya veya açık unsaved durum; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Son flush EIO” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2330"
    },
    {
      "id": "K2331",
      "number": 2331,
      "phase": 18,
      "module": "editor",
      "feature": "editor.undo",
      "stage": "contract",
      "title": "Bounded undo redo geçmişi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Geçmiş quota dışında büyümez.",
      "action": "“Bounded undo redo geçmişi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Geçmiş quota dışında büyümez. “On ekle sil geri al” kabulü ile “Bin büyük edit adımı” reddini aynı sözleşmeye bağla.",
      "invariant": "Geçmiş quota dışında büyümez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_undo"
      },
      "dependencies": [
        "K2330"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "On ekle sil geri al",
      "counterexample": "Bin büyük edit adımı",
      "guestAcceptance": "Quota tanısı ve güncel metin korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_undo_positive",
        "negativeName": "os_editor_undo_negative",
        "expectedMarker": "TURKOS/OS/K2335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Geçmiş quota dışında büyümez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bin büyük edit adımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2331"
    },
    {
      "id": "K2332",
      "number": 2332,
      "phase": 18,
      "module": "editor",
      "feature": "editor.undo",
      "stage": "implementation",
      "title": "Bounded undo redo geçmişi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Geçmiş quota dışında büyümez.",
      "action": "userspace/src/editor.rs hedefinde os_editor_undo yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Geçmiş quota dışında büyümez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_undo"
      },
      "dependencies": [
        "K2331"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "On ekle sil geri al",
      "counterexample": "Bin büyük edit adımı",
      "guestAcceptance": "Quota tanısı ve güncel metin korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_undo_positive",
        "negativeName": "os_editor_undo_negative",
        "expectedMarker": "TURKOS/OS/K2335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. On ekle sil geri al ile Bin büyük edit adımı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bin büyük edit adımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2332"
    },
    {
      "id": "K2333",
      "number": 2333,
      "phase": 18,
      "module": "editor",
      "feature": "editor.undo",
      "stage": "positive",
      "title": "Bounded undo redo geçmişi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Geçmiş quota dışında büyümez.",
      "action": "os_editor_undo_positive testini oluştur: “On ekle sil geri al”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Geçmiş quota dışında büyümez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_undo"
      },
      "dependencies": [
        "K2332"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "On ekle sil geri al",
      "counterexample": "Bin büyük edit adımı",
      "guestAcceptance": "Quota tanısı ve güncel metin korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_undo_positive",
        "negativeName": "os_editor_undo_negative",
        "expectedMarker": "TURKOS/OS/K2335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; On ekle sil geri al girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bin büyük edit adımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2333"
    },
    {
      "id": "K2334",
      "number": 2334,
      "phase": 18,
      "module": "editor",
      "feature": "editor.undo",
      "stage": "negative",
      "title": "Bounded undo redo geçmişi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Geçmiş quota dışında büyümez.",
      "action": "os_editor_undo_negative testini oluştur: “Bin büyük edit adımı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Geçmiş quota dışında büyümez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_undo"
      },
      "dependencies": [
        "K2333"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "On ekle sil geri al",
      "counterexample": "Bin büyük edit adımı",
      "guestAcceptance": "Quota tanısı ve güncel metin korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_undo_positive",
        "negativeName": "os_editor_undo_negative",
        "expectedMarker": "TURKOS/OS/K2335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bin büyük edit adımı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bin büyük edit adımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2334"
    },
    {
      "id": "K2335",
      "number": 2335,
      "phase": 18,
      "module": "editor",
      "feature": "editor.undo",
      "stage": "integration",
      "title": "Bounded undo redo geçmişi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Geçmiş quota dışında büyümez.",
      "action": "Tek ürün Image'ında “Quota tanısı ve güncel metin korunur” kabulünü koştur. scripts/os-acceptance/editor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Geçmiş quota dışında büyümez",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_undo"
      },
      "dependencies": [
        "K2334"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "On ekle sil geri al",
      "counterexample": "Bin büyük edit adımı",
      "guestAcceptance": "Quota tanısı ve güncel metin korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_undo_positive",
        "negativeName": "os_editor_undo_negative",
        "expectedMarker": "TURKOS/OS/K2335: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Quota tanısı ve güncel metin korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bin büyük edit adımı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2335"
    },
    {
      "id": "K2336",
      "number": 2336,
      "phase": 18,
      "module": "editor",
      "feature": "editor.session",
      "stage": "contract",
      "title": "Editör terminal UI oturumu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Focus ve çıkış handleları doğru kapanır.",
      "action": "“Editör terminal UI oturumu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Focus ve çıkış handleları doğru kapanır. “İki editör farklı dosyada” kabulü ile “Bir editör crash” reddini aynı sözleşmeye bağla.",
      "invariant": "Focus ve çıkış handleları doğru kapanır",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_session"
      },
      "dependencies": [
        "K2335"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki editör farklı dosyada",
      "counterexample": "Bir editör crash",
      "guestAcceptance": "Diğer editör ve shell ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_session_positive",
        "negativeName": "os_editor_session_negative",
        "expectedMarker": "TURKOS/OS/K2340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Focus ve çıkış handleları doğru kapanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Bir editör crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2336"
    },
    {
      "id": "K2337",
      "number": 2337,
      "phase": 18,
      "module": "editor",
      "feature": "editor.session",
      "stage": "implementation",
      "title": "Editör terminal UI oturumu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Focus ve çıkış handleları doğru kapanır.",
      "action": "userspace/src/editor.rs hedefinde os_editor_session yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/serial_console.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Focus ve çıkış handleları doğru kapanır",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_session"
      },
      "dependencies": [
        "K2336"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki editör farklı dosyada",
      "counterexample": "Bir editör crash",
      "guestAcceptance": "Diğer editör ve shell ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_session_positive",
        "negativeName": "os_editor_session_negative",
        "expectedMarker": "TURKOS/OS/K2340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki editör farklı dosyada ile Bir editör crash ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Bir editör crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2337"
    },
    {
      "id": "K2338",
      "number": 2338,
      "phase": 18,
      "module": "editor",
      "feature": "editor.session",
      "stage": "positive",
      "title": "Editör terminal UI oturumu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Focus ve çıkış handleları doğru kapanır.",
      "action": "os_editor_session_positive testini oluştur: “İki editör farklı dosyada”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Focus ve çıkış handleları doğru kapanır",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_session"
      },
      "dependencies": [
        "K2337"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki editör farklı dosyada",
      "counterexample": "Bir editör crash",
      "guestAcceptance": "Diğer editör ve shell ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_session_positive",
        "negativeName": "os_editor_session_negative",
        "expectedMarker": "TURKOS/OS/K2340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki editör farklı dosyada girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Bir editör crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2338"
    },
    {
      "id": "K2339",
      "number": 2339,
      "phase": 18,
      "module": "editor",
      "feature": "editor.session",
      "stage": "negative",
      "title": "Editör terminal UI oturumu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Focus ve çıkış handleları doğru kapanır.",
      "action": "os_editor_session_negative testini oluştur: “Bir editör crash”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Focus ve çıkış handleları doğru kapanır",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_session"
      },
      "dependencies": [
        "K2338"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki editör farklı dosyada",
      "counterexample": "Bir editör crash",
      "guestAcceptance": "Diğer editör ve shell ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_session_positive",
        "negativeName": "os_editor_session_negative",
        "expectedMarker": "TURKOS/OS/K2340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Bir editör crash karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Bir editör crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2339"
    },
    {
      "id": "K2340",
      "number": 2340,
      "phase": 18,
      "module": "editor",
      "feature": "editor.session",
      "stage": "integration",
      "title": "Editör terminal UI oturumu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Focus ve çıkış handleları doğru kapanır.",
      "action": "Tek ürün Image'ında “Diğer editör ve shell ilerler” kabulünü koştur. scripts/os-acceptance/editor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Focus ve çıkış handleları doğru kapanır",
      "source": {
        "target": "userspace/src/editor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/serial_console.rs",
        "existingReferenceSha256": "d789361f97e2b327152d219a2abdb7031e03cddf6f41724c1e5cd93dec10c374",
        "symbol": "os_editor_session"
      },
      "dependencies": [
        "K2339"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki editör farklı dosyada",
      "counterexample": "Bir editör crash",
      "guestAcceptance": "Diğer editör ve shell ilerler",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/editor.rs",
        "harness": "scripts/os-acceptance/editor.mjs",
        "positiveName": "os_editor_session_positive",
        "negativeName": "os_editor_session_negative",
        "expectedMarker": "TURKOS/OS/K2340: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Diğer editör ve shell ilerler; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Bir editör crash” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2340"
    },
    {
      "id": "K2341",
      "number": 2341,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.processes",
      "stage": "contract",
      "title": "PID thread ve durum görünümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Snapshot nesilleri tutarlı gösterir.",
      "action": "“PID thread ve durum görünümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Snapshot nesilleri tutarlı gösterir. “Üç görev churn listesi” kabulü ile “Liste ortasında reap reuse” reddini aynı sözleşmeye bağla.",
      "invariant": "Snapshot nesilleri tutarlı gösterir",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_processes"
      },
      "dependencies": [
        "K2340"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Üç görev churn listesi",
      "counterexample": "Liste ortasında reap reuse",
      "guestAcceptance": "Monitor eski kaydı yeni PID sanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_processes_positive",
        "negativeName": "os_system_monitor_processes_negative",
        "expectedMarker": "TURKOS/OS/K2345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Snapshot nesilleri tutarlı gösterir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Liste ortasında reap reuse” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2341"
    },
    {
      "id": "K2342",
      "number": 2342,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.processes",
      "stage": "implementation",
      "title": "PID thread ve durum görünümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Snapshot nesilleri tutarlı gösterir.",
      "action": "userspace/src/system_monitor.rs hedefinde os_system_monitor_processes yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Snapshot nesilleri tutarlı gösterir",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_processes"
      },
      "dependencies": [
        "K2341"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Üç görev churn listesi",
      "counterexample": "Liste ortasında reap reuse",
      "guestAcceptance": "Monitor eski kaydı yeni PID sanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_processes_positive",
        "negativeName": "os_system_monitor_processes_negative",
        "expectedMarker": "TURKOS/OS/K2345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Üç görev churn listesi ile Liste ortasında reap reuse ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Liste ortasında reap reuse” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2342"
    },
    {
      "id": "K2343",
      "number": 2343,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.processes",
      "stage": "positive",
      "title": "PID thread ve durum görünümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Snapshot nesilleri tutarlı gösterir.",
      "action": "os_system_monitor_processes_positive testini oluştur: “Üç görev churn listesi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Snapshot nesilleri tutarlı gösterir",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_processes"
      },
      "dependencies": [
        "K2342"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Üç görev churn listesi",
      "counterexample": "Liste ortasında reap reuse",
      "guestAcceptance": "Monitor eski kaydı yeni PID sanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_processes_positive",
        "negativeName": "os_system_monitor_processes_negative",
        "expectedMarker": "TURKOS/OS/K2345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Üç görev churn listesi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Liste ortasında reap reuse” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2343"
    },
    {
      "id": "K2344",
      "number": 2344,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.processes",
      "stage": "negative",
      "title": "PID thread ve durum görünümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Snapshot nesilleri tutarlı gösterir.",
      "action": "os_system_monitor_processes_negative testini oluştur: “Liste ortasında reap reuse”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Snapshot nesilleri tutarlı gösterir",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_processes"
      },
      "dependencies": [
        "K2343"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Üç görev churn listesi",
      "counterexample": "Liste ortasında reap reuse",
      "guestAcceptance": "Monitor eski kaydı yeni PID sanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_processes_positive",
        "negativeName": "os_system_monitor_processes_negative",
        "expectedMarker": "TURKOS/OS/K2345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Liste ortasında reap reuse karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Liste ortasında reap reuse” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2344"
    },
    {
      "id": "K2345",
      "number": 2345,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.processes",
      "stage": "integration",
      "title": "PID thread ve durum görünümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Snapshot nesilleri tutarlı gösterir.",
      "action": "Tek ürün Image'ında “Monitor eski kaydı yeni PID sanmaz” kabulünü koştur. scripts/os-acceptance/system_monitor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Snapshot nesilleri tutarlı gösterir",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_processes"
      },
      "dependencies": [
        "K2344"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Üç görev churn listesi",
      "counterexample": "Liste ortasında reap reuse",
      "guestAcceptance": "Monitor eski kaydı yeni PID sanmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_processes_positive",
        "negativeName": "os_system_monitor_processes_negative",
        "expectedMarker": "TURKOS/OS/K2345: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Monitor eski kaydı yeni PID sanmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Liste ortasında reap reuse” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2345"
    },
    {
      "id": "K2346",
      "number": 2346,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.memory",
      "stage": "contract",
      "title": "RAM heap DMA sayaçları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Boş owner pinned ayrı sütunlardır.",
      "action": "“RAM heap DMA sayaçları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Boş owner pinned ayrı sütunlardır. “Okuma ve DMA yükü” kabulü ile “Toplam sayıları çift sayma” reddini aynı sözleşmeye bağla.",
      "invariant": "Boş owner pinned ayrı sütunlardır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_memory"
      },
      "dependencies": [
        "K2345"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Okuma ve DMA yükü",
      "counterexample": "Toplam sayıları çift sayma",
      "guestAcceptance": "Muhasebe kernel oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_memory_positive",
        "negativeName": "os_system_monitor_memory_negative",
        "expectedMarker": "TURKOS/OS/K2350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Boş owner pinned ayrı sütunlardır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Toplam sayıları çift sayma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2346"
    },
    {
      "id": "K2347",
      "number": 2347,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.memory",
      "stage": "implementation",
      "title": "RAM heap DMA sayaçları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Boş owner pinned ayrı sütunlardır.",
      "action": "userspace/src/system_monitor.rs hedefinde os_system_monitor_memory yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Boş owner pinned ayrı sütunlardır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_memory"
      },
      "dependencies": [
        "K2346"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Okuma ve DMA yükü",
      "counterexample": "Toplam sayıları çift sayma",
      "guestAcceptance": "Muhasebe kernel oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_memory_positive",
        "negativeName": "os_system_monitor_memory_negative",
        "expectedMarker": "TURKOS/OS/K2350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Okuma ve DMA yükü ile Toplam sayıları çift sayma ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Toplam sayıları çift sayma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2347"
    },
    {
      "id": "K2348",
      "number": 2348,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.memory",
      "stage": "positive",
      "title": "RAM heap DMA sayaçları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Boş owner pinned ayrı sütunlardır.",
      "action": "os_system_monitor_memory_positive testini oluştur: “Okuma ve DMA yükü”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Boş owner pinned ayrı sütunlardır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_memory"
      },
      "dependencies": [
        "K2347"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Okuma ve DMA yükü",
      "counterexample": "Toplam sayıları çift sayma",
      "guestAcceptance": "Muhasebe kernel oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_memory_positive",
        "negativeName": "os_system_monitor_memory_negative",
        "expectedMarker": "TURKOS/OS/K2350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Okuma ve DMA yükü girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Toplam sayıları çift sayma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2348"
    },
    {
      "id": "K2349",
      "number": 2349,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.memory",
      "stage": "negative",
      "title": "RAM heap DMA sayaçları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Boş owner pinned ayrı sütunlardır.",
      "action": "os_system_monitor_memory_negative testini oluştur: “Toplam sayıları çift sayma”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Boş owner pinned ayrı sütunlardır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_memory"
      },
      "dependencies": [
        "K2348"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Okuma ve DMA yükü",
      "counterexample": "Toplam sayıları çift sayma",
      "guestAcceptance": "Muhasebe kernel oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_memory_positive",
        "negativeName": "os_system_monitor_memory_negative",
        "expectedMarker": "TURKOS/OS/K2350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Toplam sayıları çift sayma karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Toplam sayıları çift sayma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2349"
    },
    {
      "id": "K2350",
      "number": 2350,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.memory",
      "stage": "integration",
      "title": "RAM heap DMA sayaçları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Boş owner pinned ayrı sütunlardır.",
      "action": "Tek ürün Image'ında “Muhasebe kernel oracle ile eşit” kabulünü koştur. scripts/os-acceptance/system_monitor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Boş owner pinned ayrı sütunlardır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_memory"
      },
      "dependencies": [
        "K2349"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Okuma ve DMA yükü",
      "counterexample": "Toplam sayıları çift sayma",
      "guestAcceptance": "Muhasebe kernel oracle ile eşit",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_memory_positive",
        "negativeName": "os_system_monitor_memory_negative",
        "expectedMarker": "TURKOS/OS/K2350: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Muhasebe kernel oracle ile eşit; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Toplam sayıları çift sayma” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2350"
    },
    {
      "id": "K2351",
      "number": 2351,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.cpu",
      "stage": "contract",
      "title": "CPU süre ve scheduler yükü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Örnek aralığı ve idle payı açıklanır.",
      "action": "“CPU süre ve scheduler yükü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Örnek aralığı ve idle payı açıklanır. “İki CPU üç yük” kabulü ile “Negatif veya wrap zaman farkı” reddini aynı sözleşmeye bağla.",
      "invariant": "Örnek aralığı ve idle payı açıklanır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_cpu"
      },
      "dependencies": [
        "K2350"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki CPU üç yük",
      "counterexample": "Negatif veya wrap zaman farkı",
      "guestAcceptance": "Geçersiz örnek başarı diye gösterilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_cpu_positive",
        "negativeName": "os_system_monitor_cpu_negative",
        "expectedMarker": "TURKOS/OS/K2355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Örnek aralığı ve idle payı açıklanır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Negatif veya wrap zaman farkı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2351"
    },
    {
      "id": "K2352",
      "number": 2352,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.cpu",
      "stage": "implementation",
      "title": "CPU süre ve scheduler yükü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Örnek aralığı ve idle payı açıklanır.",
      "action": "userspace/src/system_monitor.rs hedefinde os_system_monitor_cpu yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Örnek aralığı ve idle payı açıklanır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_cpu"
      },
      "dependencies": [
        "K2351"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki CPU üç yük",
      "counterexample": "Negatif veya wrap zaman farkı",
      "guestAcceptance": "Geçersiz örnek başarı diye gösterilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_cpu_positive",
        "negativeName": "os_system_monitor_cpu_negative",
        "expectedMarker": "TURKOS/OS/K2355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki CPU üç yük ile Negatif veya wrap zaman farkı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Negatif veya wrap zaman farkı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2352"
    },
    {
      "id": "K2353",
      "number": 2353,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.cpu",
      "stage": "positive",
      "title": "CPU süre ve scheduler yükü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Örnek aralığı ve idle payı açıklanır.",
      "action": "os_system_monitor_cpu_positive testini oluştur: “İki CPU üç yük”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Örnek aralığı ve idle payı açıklanır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_cpu"
      },
      "dependencies": [
        "K2352"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki CPU üç yük",
      "counterexample": "Negatif veya wrap zaman farkı",
      "guestAcceptance": "Geçersiz örnek başarı diye gösterilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_cpu_positive",
        "negativeName": "os_system_monitor_cpu_negative",
        "expectedMarker": "TURKOS/OS/K2355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki CPU üç yük girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Negatif veya wrap zaman farkı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2353"
    },
    {
      "id": "K2354",
      "number": 2354,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.cpu",
      "stage": "negative",
      "title": "CPU süre ve scheduler yükü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Örnek aralığı ve idle payı açıklanır.",
      "action": "os_system_monitor_cpu_negative testini oluştur: “Negatif veya wrap zaman farkı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Örnek aralığı ve idle payı açıklanır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_cpu"
      },
      "dependencies": [
        "K2353"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki CPU üç yük",
      "counterexample": "Negatif veya wrap zaman farkı",
      "guestAcceptance": "Geçersiz örnek başarı diye gösterilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_cpu_positive",
        "negativeName": "os_system_monitor_cpu_negative",
        "expectedMarker": "TURKOS/OS/K2355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Negatif veya wrap zaman farkı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Negatif veya wrap zaman farkı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2354"
    },
    {
      "id": "K2355",
      "number": 2355,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.cpu",
      "stage": "integration",
      "title": "CPU süre ve scheduler yükü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Örnek aralığı ve idle payı açıklanır.",
      "action": "Tek ürün Image'ında “Geçersiz örnek başarı diye gösterilmez” kabulünü koştur. scripts/os-acceptance/system_monitor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Örnek aralığı ve idle payı açıklanır",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_cpu"
      },
      "dependencies": [
        "K2354"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki CPU üç yük",
      "counterexample": "Negatif veya wrap zaman farkı",
      "guestAcceptance": "Geçersiz örnek başarı diye gösterilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_cpu_positive",
        "negativeName": "os_system_monitor_cpu_negative",
        "expectedMarker": "TURKOS/OS/K2355: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Geçersiz örnek başarı diye gösterilmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Negatif veya wrap zaman farkı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2355"
    },
    {
      "id": "K2356",
      "number": 2356,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.logs",
      "stage": "contract",
      "title": "Yetkili tanı log görünümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Monitor sırlı alanları okuyamaz.",
      "action": "“Yetkili tanı log görünümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Monitor sırlı alanları okuyamaz. “İzinli hizmet olayları” kabulü ile “Secret buffer log isteği” reddini aynı sözleşmeye bağla.",
      "invariant": "Monitor sırlı alanları okuyamaz",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_logs"
      },
      "dependencies": [
        "K2355"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzinli hizmet olayları",
      "counterexample": "Secret buffer log isteği",
      "guestAcceptance": "Redaction ve principal süzmesi çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_logs_positive",
        "negativeName": "os_system_monitor_logs_negative",
        "expectedMarker": "TURKOS/OS/K2360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Monitor sırlı alanları okuyamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Secret buffer log isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2356"
    },
    {
      "id": "K2357",
      "number": 2357,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.logs",
      "stage": "implementation",
      "title": "Yetkili tanı log görünümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Monitor sırlı alanları okuyamaz.",
      "action": "userspace/src/system_monitor.rs hedefinde os_system_monitor_logs yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/task.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Monitor sırlı alanları okuyamaz",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_logs"
      },
      "dependencies": [
        "K2356"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzinli hizmet olayları",
      "counterexample": "Secret buffer log isteği",
      "guestAcceptance": "Redaction ve principal süzmesi çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_logs_positive",
        "negativeName": "os_system_monitor_logs_negative",
        "expectedMarker": "TURKOS/OS/K2360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İzinli hizmet olayları ile Secret buffer log isteği ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Secret buffer log isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2357"
    },
    {
      "id": "K2358",
      "number": 2358,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.logs",
      "stage": "positive",
      "title": "Yetkili tanı log görünümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Monitor sırlı alanları okuyamaz.",
      "action": "os_system_monitor_logs_positive testini oluştur: “İzinli hizmet olayları”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Monitor sırlı alanları okuyamaz",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_logs"
      },
      "dependencies": [
        "K2357"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzinli hizmet olayları",
      "counterexample": "Secret buffer log isteği",
      "guestAcceptance": "Redaction ve principal süzmesi çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_logs_positive",
        "negativeName": "os_system_monitor_logs_negative",
        "expectedMarker": "TURKOS/OS/K2360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İzinli hizmet olayları girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Secret buffer log isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2358"
    },
    {
      "id": "K2359",
      "number": 2359,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.logs",
      "stage": "negative",
      "title": "Yetkili tanı log görünümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Monitor sırlı alanları okuyamaz.",
      "action": "os_system_monitor_logs_negative testini oluştur: “Secret buffer log isteği”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Monitor sırlı alanları okuyamaz",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_logs"
      },
      "dependencies": [
        "K2358"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzinli hizmet olayları",
      "counterexample": "Secret buffer log isteği",
      "guestAcceptance": "Redaction ve principal süzmesi çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_logs_positive",
        "negativeName": "os_system_monitor_logs_negative",
        "expectedMarker": "TURKOS/OS/K2360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Secret buffer log isteği karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Secret buffer log isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2359"
    },
    {
      "id": "K2360",
      "number": 2360,
      "phase": 18,
      "module": "system_monitor",
      "feature": "system_monitor.logs",
      "stage": "integration",
      "title": "Yetkili tanı log görünümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Monitor sırlı alanları okuyamaz.",
      "action": "Tek ürün Image'ında “Redaction ve principal süzmesi çalışır” kabulünü koştur. scripts/os-acceptance/system_monitor.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Monitor sırlı alanları okuyamaz",
      "source": {
        "target": "userspace/src/system_monitor.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/task.rs",
        "existingReferenceSha256": "65cab87b7f65f867835b99238622ac110cf4eacfe7637f6f49e115569dfdc1da",
        "symbol": "os_system_monitor_logs"
      },
      "dependencies": [
        "K2359"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzinli hizmet olayları",
      "counterexample": "Secret buffer log isteği",
      "guestAcceptance": "Redaction ve principal süzmesi çalışır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/system_monitor.rs",
        "harness": "scripts/os-acceptance/system_monitor.mjs",
        "positiveName": "os_system_monitor_logs_positive",
        "negativeName": "os_system_monitor_logs_negative",
        "expectedMarker": "TURKOS/OS/K2360: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Redaction ve principal süzmesi çalışır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Secret buffer log isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2360"
    },
    {
      "id": "K2361",
      "number": 2361,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.ping",
      "stage": "contract",
      "title": "Sınırlı ICMP test aracı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef ve paket sayısı açık bütçelidir.",
      "action": "“Sınırlı ICMP test aracı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Hedef ve paket sayısı açık bütçelidir. “İzole peer üç ping” kabulü ile “Sınırsız flood isteği” reddini aynı sözleşmeye bağla.",
      "invariant": "Hedef ve paket sayısı açık bütçelidir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_ping"
      },
      "dependencies": [
        "K2360"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzole peer üç ping",
      "counterexample": "Sınırsız flood isteği",
      "guestAcceptance": "Ret veya bounded tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_ping_positive",
        "negativeName": "os_network_tools_ping_negative",
        "expectedMarker": "TURKOS/OS/K2365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Hedef ve paket sayısı açık bütçelidir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Sınırsız flood isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2361"
    },
    {
      "id": "K2362",
      "number": 2362,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.ping",
      "stage": "implementation",
      "title": "Sınırlı ICMP test aracı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef ve paket sayısı açık bütçelidir.",
      "action": "userspace/src/network_tools.rs hedefinde os_network_tools_ping yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_icmp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Hedef ve paket sayısı açık bütçelidir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_ping"
      },
      "dependencies": [
        "K2361"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzole peer üç ping",
      "counterexample": "Sınırsız flood isteği",
      "guestAcceptance": "Ret veya bounded tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_ping_positive",
        "negativeName": "os_network_tools_ping_negative",
        "expectedMarker": "TURKOS/OS/K2365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İzole peer üç ping ile Sınırsız flood isteği ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Sınırsız flood isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2362"
    },
    {
      "id": "K2363",
      "number": 2363,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.ping",
      "stage": "positive",
      "title": "Sınırlı ICMP test aracı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef ve paket sayısı açık bütçelidir.",
      "action": "os_network_tools_ping_positive testini oluştur: “İzole peer üç ping”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Hedef ve paket sayısı açık bütçelidir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_ping"
      },
      "dependencies": [
        "K2362"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzole peer üç ping",
      "counterexample": "Sınırsız flood isteği",
      "guestAcceptance": "Ret veya bounded tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_ping_positive",
        "negativeName": "os_network_tools_ping_negative",
        "expectedMarker": "TURKOS/OS/K2365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İzole peer üç ping girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Sınırsız flood isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2363"
    },
    {
      "id": "K2364",
      "number": 2364,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.ping",
      "stage": "negative",
      "title": "Sınırlı ICMP test aracı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef ve paket sayısı açık bütçelidir.",
      "action": "os_network_tools_ping_negative testini oluştur: “Sınırsız flood isteği”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Hedef ve paket sayısı açık bütçelidir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_ping"
      },
      "dependencies": [
        "K2363"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzole peer üç ping",
      "counterexample": "Sınırsız flood isteği",
      "guestAcceptance": "Ret veya bounded tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_ping_positive",
        "negativeName": "os_network_tools_ping_negative",
        "expectedMarker": "TURKOS/OS/K2365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Sınırsız flood isteği karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Sınırsız flood isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2364"
    },
    {
      "id": "K2365",
      "number": 2365,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.ping",
      "stage": "integration",
      "title": "Sınırlı ICMP test aracı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Hedef ve paket sayısı açık bütçelidir.",
      "action": "Tek ürün Image'ında “Ret veya bounded tanı” kabulünü koştur. scripts/os-acceptance/network_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Hedef ve paket sayısı açık bütçelidir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_ping"
      },
      "dependencies": [
        "K2364"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İzole peer üç ping",
      "counterexample": "Sınırsız flood isteği",
      "guestAcceptance": "Ret veya bounded tanı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_ping_positive",
        "negativeName": "os_network_tools_ping_negative",
        "expectedMarker": "TURKOS/OS/K2365: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Ret veya bounded tanı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Sınırsız flood isteği” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2365"
    },
    {
      "id": "K2366",
      "number": 2366,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.udp_tool",
      "stage": "contract",
      "title": "UDP gönder al aracı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Datagram boy ve tuple kaydedilir.",
      "action": "“UDP gönder al aracı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Datagram boy ve tuple kaydedilir. “Peerle üç byte payload” kabulü ile “Yanlış port veya truncated reply” reddini aynı sözleşmeye bağla.",
      "invariant": "Datagram boy ve tuple kaydedilir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_udp_tool"
      },
      "dependencies": [
        "K2365"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Peerle üç byte payload",
      "counterexample": "Yanlış port veya truncated reply",
      "guestAcceptance": "Beklenen hash ve hata kodu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_udp_tool_positive",
        "negativeName": "os_network_tools_udp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Datagram boy ve tuple kaydedilir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanlış port veya truncated reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2366"
    },
    {
      "id": "K2367",
      "number": 2367,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.udp_tool",
      "stage": "implementation",
      "title": "UDP gönder al aracı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Datagram boy ve tuple kaydedilir.",
      "action": "userspace/src/network_tools.rs hedefinde os_network_tools_udp_tool yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_icmp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Datagram boy ve tuple kaydedilir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_udp_tool"
      },
      "dependencies": [
        "K2366"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Peerle üç byte payload",
      "counterexample": "Yanlış port veya truncated reply",
      "guestAcceptance": "Beklenen hash ve hata kodu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_udp_tool_positive",
        "negativeName": "os_network_tools_udp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Peerle üç byte payload ile Yanlış port veya truncated reply ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanlış port veya truncated reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2367"
    },
    {
      "id": "K2368",
      "number": 2368,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.udp_tool",
      "stage": "positive",
      "title": "UDP gönder al aracı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Datagram boy ve tuple kaydedilir.",
      "action": "os_network_tools_udp_tool_positive testini oluştur: “Peerle üç byte payload”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Datagram boy ve tuple kaydedilir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_udp_tool"
      },
      "dependencies": [
        "K2367"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Peerle üç byte payload",
      "counterexample": "Yanlış port veya truncated reply",
      "guestAcceptance": "Beklenen hash ve hata kodu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_udp_tool_positive",
        "negativeName": "os_network_tools_udp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Peerle üç byte payload girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanlış port veya truncated reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2368"
    },
    {
      "id": "K2369",
      "number": 2369,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.udp_tool",
      "stage": "negative",
      "title": "UDP gönder al aracı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Datagram boy ve tuple kaydedilir.",
      "action": "os_network_tools_udp_tool_negative testini oluştur: “Yanlış port veya truncated reply”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Datagram boy ve tuple kaydedilir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_udp_tool"
      },
      "dependencies": [
        "K2368"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Peerle üç byte payload",
      "counterexample": "Yanlış port veya truncated reply",
      "guestAcceptance": "Beklenen hash ve hata kodu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_udp_tool_positive",
        "negativeName": "os_network_tools_udp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış port veya truncated reply karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanlış port veya truncated reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2369"
    },
    {
      "id": "K2370",
      "number": 2370,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.udp_tool",
      "stage": "integration",
      "title": "UDP gönder al aracı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Datagram boy ve tuple kaydedilir.",
      "action": "Tek ürün Image'ında “Beklenen hash ve hata kodu” kabulünü koştur. scripts/os-acceptance/network_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Datagram boy ve tuple kaydedilir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_udp_tool"
      },
      "dependencies": [
        "K2369"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Peerle üç byte payload",
      "counterexample": "Yanlış port veya truncated reply",
      "guestAcceptance": "Beklenen hash ve hata kodu",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_udp_tool_positive",
        "negativeName": "os_network_tools_udp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2370: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Beklenen hash ve hata kodu; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanlış port veya truncated reply” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2370"
    },
    {
      "id": "K2371",
      "number": 2371,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.tcp_tool",
      "stage": "contract",
      "title": "Küçük TCP akış aracı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: EOF kısa read write ayrı işlenir.",
      "action": "“Küçük TCP akış aracı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: EOF kısa read write ayrı işlenir. “İki segment metin akışı” kabulü ile “Peer ortada reset” reddini aynı sözleşmeye bağla.",
      "invariant": "EOF kısa read write ayrı işlenir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_tcp_tool"
      },
      "dependencies": [
        "K2370"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki segment metin akışı",
      "counterexample": "Peer ortada reset",
      "guestAcceptance": "Açık ECONNRESET kabuğu bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_tcp_tool_positive",
        "negativeName": "os_network_tools_tcp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu EOF kısa read write ayrı işlenir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Peer ortada reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2371"
    },
    {
      "id": "K2372",
      "number": 2372,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.tcp_tool",
      "stage": "implementation",
      "title": "Küçük TCP akış aracı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: EOF kısa read write ayrı işlenir.",
      "action": "userspace/src/network_tools.rs hedefinde os_network_tools_tcp_tool yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_icmp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "EOF kısa read write ayrı işlenir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_tcp_tool"
      },
      "dependencies": [
        "K2371"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki segment metin akışı",
      "counterexample": "Peer ortada reset",
      "guestAcceptance": "Açık ECONNRESET kabuğu bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_tcp_tool_positive",
        "negativeName": "os_network_tools_tcp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki segment metin akışı ile Peer ortada reset ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Peer ortada reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2372"
    },
    {
      "id": "K2373",
      "number": 2373,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.tcp_tool",
      "stage": "positive",
      "title": "Küçük TCP akış aracı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: EOF kısa read write ayrı işlenir.",
      "action": "os_network_tools_tcp_tool_positive testini oluştur: “İki segment metin akışı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "EOF kısa read write ayrı işlenir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_tcp_tool"
      },
      "dependencies": [
        "K2372"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki segment metin akışı",
      "counterexample": "Peer ortada reset",
      "guestAcceptance": "Açık ECONNRESET kabuğu bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_tcp_tool_positive",
        "negativeName": "os_network_tools_tcp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki segment metin akışı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Peer ortada reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2373"
    },
    {
      "id": "K2374",
      "number": 2374,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.tcp_tool",
      "stage": "negative",
      "title": "Küçük TCP akış aracı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: EOF kısa read write ayrı işlenir.",
      "action": "os_network_tools_tcp_tool_negative testini oluştur: “Peer ortada reset”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "EOF kısa read write ayrı işlenir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_tcp_tool"
      },
      "dependencies": [
        "K2373"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki segment metin akışı",
      "counterexample": "Peer ortada reset",
      "guestAcceptance": "Açık ECONNRESET kabuğu bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_tcp_tool_positive",
        "negativeName": "os_network_tools_tcp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Peer ortada reset karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Peer ortada reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2374"
    },
    {
      "id": "K2375",
      "number": 2375,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.tcp_tool",
      "stage": "integration",
      "title": "Küçük TCP akış aracı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: EOF kısa read write ayrı işlenir.",
      "action": "Tek ürün Image'ında “Açık ECONNRESET kabuğu bozmaz” kabulünü koştur. scripts/os-acceptance/network_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "EOF kısa read write ayrı işlenir",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_tcp_tool"
      },
      "dependencies": [
        "K2374"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki segment metin akışı",
      "counterexample": "Peer ortada reset",
      "guestAcceptance": "Açık ECONNRESET kabuğu bozmaz",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_tcp_tool_positive",
        "negativeName": "os_network_tools_tcp_tool_negative",
        "expectedMarker": "TURKOS/OS/K2375: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Açık ECONNRESET kabuğu bozmaz; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Peer ortada reset” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2375"
    },
    {
      "id": "K2376",
      "number": 2376,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.diagnostic",
      "stage": "contract",
      "title": "Route ARP socket görünümü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Yetkisiz session ayrıntısı açıklanmaz.",
      "action": "“Route ARP socket görünümü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Yetkisiz session ayrıntısı açıklanmaz. “Kendi socket ve route listesi” kabulü ile “Başka principal sessionı” reddini aynı sözleşmeye bağla.",
      "invariant": "Yetkisiz session ayrıntısı açıklanmaz",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_diagnostic"
      },
      "dependencies": [
        "K2375"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Kendi socket ve route listesi",
      "counterexample": "Başka principal sessionı",
      "guestAcceptance": "Yalnız izinli metadata gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_diagnostic_positive",
        "negativeName": "os_network_tools_diagnostic_negative",
        "expectedMarker": "TURKOS/OS/K2380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Yetkisiz session ayrıntısı açıklanmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Başka principal sessionı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2376"
    },
    {
      "id": "K2377",
      "number": 2377,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.diagnostic",
      "stage": "implementation",
      "title": "Route ARP socket görünümü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Yetkisiz session ayrıntısı açıklanmaz.",
      "action": "userspace/src/network_tools.rs hedefinde os_network_tools_diagnostic yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/net_icmp.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Yetkisiz session ayrıntısı açıklanmaz",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_diagnostic"
      },
      "dependencies": [
        "K2376"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Kendi socket ve route listesi",
      "counterexample": "Başka principal sessionı",
      "guestAcceptance": "Yalnız izinli metadata gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_diagnostic_positive",
        "negativeName": "os_network_tools_diagnostic_negative",
        "expectedMarker": "TURKOS/OS/K2380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Kendi socket ve route listesi ile Başka principal sessionı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Başka principal sessionı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2377"
    },
    {
      "id": "K2378",
      "number": 2378,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.diagnostic",
      "stage": "positive",
      "title": "Route ARP socket görünümü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Yetkisiz session ayrıntısı açıklanmaz.",
      "action": "os_network_tools_diagnostic_positive testini oluştur: “Kendi socket ve route listesi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Yetkisiz session ayrıntısı açıklanmaz",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_diagnostic"
      },
      "dependencies": [
        "K2377"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Kendi socket ve route listesi",
      "counterexample": "Başka principal sessionı",
      "guestAcceptance": "Yalnız izinli metadata gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_diagnostic_positive",
        "negativeName": "os_network_tools_diagnostic_negative",
        "expectedMarker": "TURKOS/OS/K2380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Kendi socket ve route listesi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Başka principal sessionı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2378"
    },
    {
      "id": "K2379",
      "number": 2379,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.diagnostic",
      "stage": "negative",
      "title": "Route ARP socket görünümü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Yetkisiz session ayrıntısı açıklanmaz.",
      "action": "os_network_tools_diagnostic_negative testini oluştur: “Başka principal sessionı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Yetkisiz session ayrıntısı açıklanmaz",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_diagnostic"
      },
      "dependencies": [
        "K2378"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Kendi socket ve route listesi",
      "counterexample": "Başka principal sessionı",
      "guestAcceptance": "Yalnız izinli metadata gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_diagnostic_positive",
        "negativeName": "os_network_tools_diagnostic_negative",
        "expectedMarker": "TURKOS/OS/K2380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başka principal sessionı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Başka principal sessionı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2379"
    },
    {
      "id": "K2380",
      "number": 2380,
      "phase": 18,
      "module": "network_tools",
      "feature": "network_tools.diagnostic",
      "stage": "integration",
      "title": "Route ARP socket görünümü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Yetkisiz session ayrıntısı açıklanmaz.",
      "action": "Tek ürün Image'ında “Yalnız izinli metadata gösterilir” kabulünü koştur. scripts/os-acceptance/network_tools.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Yetkisiz session ayrıntısı açıklanmaz",
      "source": {
        "target": "userspace/src/network_tools.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/net_icmp.rs",
        "existingReferenceSha256": "c5f85b62b0fa64ae4f97d34ed11f709d5c703f5d0e27d5dcdef565140a279895",
        "symbol": "os_network_tools_diagnostic"
      },
      "dependencies": [
        "K2379"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Kendi socket ve route listesi",
      "counterexample": "Başka principal sessionı",
      "guestAcceptance": "Yalnız izinli metadata gösterilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/network_tools.rs",
        "harness": "scripts/os-acceptance/network_tools.mjs",
        "positiveName": "os_network_tools_diagnostic_positive",
        "negativeName": "os_network_tools_diagnostic_negative",
        "expectedMarker": "TURKOS/OS/K2380: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yalnız izinli metadata gösterilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Başka principal sessionı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2380"
    },
    {
      "id": "K2381",
      "number": 2381,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.schema",
      "stage": "contract",
      "title": "Sürümlü servis yapılandırması · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Şema ve bilinmeyen zorunlu alan ayrılır.",
      "action": "“Sürümlü servis yapılandırması” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Şema ve bilinmeyen zorunlu alan ayrılır. “Console ve shell config” kabulü ile “Döngü veya aşırı uzunluk” reddini aynı sözleşmeye bağla.",
      "invariant": "Şema ve bilinmeyen zorunlu alan ayrılır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_schema"
      },
      "dependencies": [
        "K2380"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Console ve shell config",
      "counterexample": "Döngü veya aşırı uzunluk",
      "guestAcceptance": "Eski güvenli config korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_schema_positive",
        "negativeName": "os_configuration_schema_negative",
        "expectedMarker": "TURKOS/OS/K2385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Şema ve bilinmeyen zorunlu alan ayrılır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Döngü veya aşırı uzunluk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2381"
    },
    {
      "id": "K2382",
      "number": 2382,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.schema",
      "stage": "implementation",
      "title": "Sürümlü servis yapılandırması · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Şema ve bilinmeyen zorunlu alan ayrılır.",
      "action": "userspace/src/configuration.rs hedefinde os_configuration_schema yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Şema ve bilinmeyen zorunlu alan ayrılır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_schema"
      },
      "dependencies": [
        "K2381"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Console ve shell config",
      "counterexample": "Döngü veya aşırı uzunluk",
      "guestAcceptance": "Eski güvenli config korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_schema_positive",
        "negativeName": "os_configuration_schema_negative",
        "expectedMarker": "TURKOS/OS/K2385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Console ve shell config ile Döngü veya aşırı uzunluk ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Döngü veya aşırı uzunluk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2382"
    },
    {
      "id": "K2383",
      "number": 2383,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.schema",
      "stage": "positive",
      "title": "Sürümlü servis yapılandırması · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Şema ve bilinmeyen zorunlu alan ayrılır.",
      "action": "os_configuration_schema_positive testini oluştur: “Console ve shell config”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Şema ve bilinmeyen zorunlu alan ayrılır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_schema"
      },
      "dependencies": [
        "K2382"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Console ve shell config",
      "counterexample": "Döngü veya aşırı uzunluk",
      "guestAcceptance": "Eski güvenli config korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_schema_positive",
        "negativeName": "os_configuration_schema_negative",
        "expectedMarker": "TURKOS/OS/K2385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Console ve shell config girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Döngü veya aşırı uzunluk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2383"
    },
    {
      "id": "K2384",
      "number": 2384,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.schema",
      "stage": "negative",
      "title": "Sürümlü servis yapılandırması · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Şema ve bilinmeyen zorunlu alan ayrılır.",
      "action": "os_configuration_schema_negative testini oluştur: “Döngü veya aşırı uzunluk”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Şema ve bilinmeyen zorunlu alan ayrılır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_schema"
      },
      "dependencies": [
        "K2383"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Console ve shell config",
      "counterexample": "Döngü veya aşırı uzunluk",
      "guestAcceptance": "Eski güvenli config korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_schema_positive",
        "negativeName": "os_configuration_schema_negative",
        "expectedMarker": "TURKOS/OS/K2385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Döngü veya aşırı uzunluk karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Döngü veya aşırı uzunluk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2384"
    },
    {
      "id": "K2385",
      "number": 2385,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.schema",
      "stage": "integration",
      "title": "Sürümlü servis yapılandırması · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Şema ve bilinmeyen zorunlu alan ayrılır.",
      "action": "Tek ürün Image'ında “Eski güvenli config korunur” kabulünü koştur. scripts/os-acceptance/configuration.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Şema ve bilinmeyen zorunlu alan ayrılır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_schema"
      },
      "dependencies": [
        "K2384"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Console ve shell config",
      "counterexample": "Döngü veya aşırı uzunluk",
      "guestAcceptance": "Eski güvenli config korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_schema_positive",
        "negativeName": "os_configuration_schema_negative",
        "expectedMarker": "TURKOS/OS/K2385: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski güvenli config korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Döngü veya aşırı uzunluk” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2385"
    },
    {
      "id": "K2386",
      "number": 2386,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.persistence",
      "stage": "contract",
      "title": "Config atomik kalıcılık · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Ayar ya eski ya yeni geçerli kayıt olur.",
      "action": "“Config atomik kalıcılık” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Ayar ya eski ya yeni geçerli kayıt olur. “Geçici diskte write rename” kabulü ile “Commit sırasında süreç ölümü” reddini aynı sözleşmeye bağla.",
      "invariant": "Ayar ya eski ya yeni geçerli kayıt olur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_persistence"
      },
      "dependencies": [
        "K2385"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici diskte write rename",
      "counterexample": "Commit sırasında süreç ölümü",
      "guestAcceptance": "Yeni boot geçerli bir sürüm seçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_persistence_positive",
        "negativeName": "os_configuration_persistence_negative",
        "expectedMarker": "TURKOS/OS/K2390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Ayar ya eski ya yeni geçerli kayıt olur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Commit sırasında süreç ölümü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2386"
    },
    {
      "id": "K2387",
      "number": 2387,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.persistence",
      "stage": "implementation",
      "title": "Config atomik kalıcılık · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Ayar ya eski ya yeni geçerli kayıt olur.",
      "action": "userspace/src/configuration.rs hedefinde os_configuration_persistence yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Ayar ya eski ya yeni geçerli kayıt olur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_persistence"
      },
      "dependencies": [
        "K2386"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici diskte write rename",
      "counterexample": "Commit sırasında süreç ölümü",
      "guestAcceptance": "Yeni boot geçerli bir sürüm seçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_persistence_positive",
        "negativeName": "os_configuration_persistence_negative",
        "expectedMarker": "TURKOS/OS/K2390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçici diskte write rename ile Commit sırasında süreç ölümü ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Commit sırasında süreç ölümü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2387"
    },
    {
      "id": "K2388",
      "number": 2388,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.persistence",
      "stage": "positive",
      "title": "Config atomik kalıcılık · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Ayar ya eski ya yeni geçerli kayıt olur.",
      "action": "os_configuration_persistence_positive testini oluştur: “Geçici diskte write rename”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Ayar ya eski ya yeni geçerli kayıt olur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_persistence"
      },
      "dependencies": [
        "K2387"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici diskte write rename",
      "counterexample": "Commit sırasında süreç ölümü",
      "guestAcceptance": "Yeni boot geçerli bir sürüm seçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_persistence_positive",
        "negativeName": "os_configuration_persistence_negative",
        "expectedMarker": "TURKOS/OS/K2390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçici diskte write rename girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Commit sırasında süreç ölümü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2388"
    },
    {
      "id": "K2389",
      "number": 2389,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.persistence",
      "stage": "negative",
      "title": "Config atomik kalıcılık · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Ayar ya eski ya yeni geçerli kayıt olur.",
      "action": "os_configuration_persistence_negative testini oluştur: “Commit sırasında süreç ölümü”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Ayar ya eski ya yeni geçerli kayıt olur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_persistence"
      },
      "dependencies": [
        "K2388"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici diskte write rename",
      "counterexample": "Commit sırasında süreç ölümü",
      "guestAcceptance": "Yeni boot geçerli bir sürüm seçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_persistence_positive",
        "negativeName": "os_configuration_persistence_negative",
        "expectedMarker": "TURKOS/OS/K2390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Commit sırasında süreç ölümü karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Commit sırasında süreç ölümü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2389"
    },
    {
      "id": "K2390",
      "number": 2390,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.persistence",
      "stage": "integration",
      "title": "Config atomik kalıcılık · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Ayar ya eski ya yeni geçerli kayıt olur.",
      "action": "Tek ürün Image'ında “Yeni boot geçerli bir sürüm seçer” kabulünü koştur. scripts/os-acceptance/configuration.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Ayar ya eski ya yeni geçerli kayıt olur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_persistence"
      },
      "dependencies": [
        "K2389"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Geçici diskte write rename",
      "counterexample": "Commit sırasında süreç ölümü",
      "guestAcceptance": "Yeni boot geçerli bir sürüm seçer",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_persistence_positive",
        "negativeName": "os_configuration_persistence_negative",
        "expectedMarker": "TURKOS/OS/K2390: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni boot geçerli bir sürüm seçer; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Commit sırasında süreç ölümü” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2390"
    },
    {
      "id": "K2391",
      "number": 2391,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.package",
      "stage": "contract",
      "title": "Native uygulama paket indeksi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Paket imaj ABI hak ve hash taşır.",
      "action": "“Native uygulama paket indeksi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Paket imaj ABI hak ve hash taşır. “İki Rust native araç” kabulü ile “Hash yanlış veya ABI desteksiz” reddini aynı sözleşmeye bağla.",
      "invariant": "Paket imaj ABI hak ve hash taşır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_package"
      },
      "dependencies": [
        "K2390"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki Rust native araç",
      "counterexample": "Hash yanlış veya ABI desteksiz",
      "guestAcceptance": "Paket kurulum adayı reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_package_positive",
        "negativeName": "os_configuration_package_negative",
        "expectedMarker": "TURKOS/OS/K2395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Paket imaj ABI hak ve hash taşır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Hash yanlış veya ABI desteksiz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2391"
    },
    {
      "id": "K2392",
      "number": 2392,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.package",
      "stage": "implementation",
      "title": "Native uygulama paket indeksi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Paket imaj ABI hak ve hash taşır.",
      "action": "userspace/src/configuration.rs hedefinde os_configuration_package yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Paket imaj ABI hak ve hash taşır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_package"
      },
      "dependencies": [
        "K2391"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki Rust native araç",
      "counterexample": "Hash yanlış veya ABI desteksiz",
      "guestAcceptance": "Paket kurulum adayı reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_package_positive",
        "negativeName": "os_configuration_package_negative",
        "expectedMarker": "TURKOS/OS/K2395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki Rust native araç ile Hash yanlış veya ABI desteksiz ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Hash yanlış veya ABI desteksiz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2392"
    },
    {
      "id": "K2393",
      "number": 2393,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.package",
      "stage": "positive",
      "title": "Native uygulama paket indeksi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Paket imaj ABI hak ve hash taşır.",
      "action": "os_configuration_package_positive testini oluştur: “İki Rust native araç”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Paket imaj ABI hak ve hash taşır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_package"
      },
      "dependencies": [
        "K2392"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki Rust native araç",
      "counterexample": "Hash yanlış veya ABI desteksiz",
      "guestAcceptance": "Paket kurulum adayı reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_package_positive",
        "negativeName": "os_configuration_package_negative",
        "expectedMarker": "TURKOS/OS/K2395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki Rust native araç girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Hash yanlış veya ABI desteksiz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2393"
    },
    {
      "id": "K2394",
      "number": 2394,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.package",
      "stage": "negative",
      "title": "Native uygulama paket indeksi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Paket imaj ABI hak ve hash taşır.",
      "action": "os_configuration_package_negative testini oluştur: “Hash yanlış veya ABI desteksiz”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Paket imaj ABI hak ve hash taşır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_package"
      },
      "dependencies": [
        "K2393"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki Rust native araç",
      "counterexample": "Hash yanlış veya ABI desteksiz",
      "guestAcceptance": "Paket kurulum adayı reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_package_positive",
        "negativeName": "os_configuration_package_negative",
        "expectedMarker": "TURKOS/OS/K2395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hash yanlış veya ABI desteksiz karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Hash yanlış veya ABI desteksiz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2394"
    },
    {
      "id": "K2395",
      "number": 2395,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.package",
      "stage": "integration",
      "title": "Native uygulama paket indeksi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Paket imaj ABI hak ve hash taşır.",
      "action": "Tek ürün Image'ında “Paket kurulum adayı reddedilir” kabulünü koştur. scripts/os-acceptance/configuration.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Paket imaj ABI hak ve hash taşır",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_package"
      },
      "dependencies": [
        "K2394"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "İki Rust native araç",
      "counterexample": "Hash yanlış veya ABI desteksiz",
      "guestAcceptance": "Paket kurulum adayı reddedilir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_package_positive",
        "negativeName": "os_configuration_package_negative",
        "expectedMarker": "TURKOS/OS/K2395: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Paket kurulum adayı reddedilir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Hash yanlış veya ABI desteksiz” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2395"
    },
    {
      "id": "K2396",
      "number": 2396,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.uninstall",
      "stage": "contract",
      "title": "Uygulama kaldırma ömrü · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Çalışan imaj backing korunur.",
      "action": "“Uygulama kaldırma ömrü” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Çalışan imaj backing korunur. “Açık uygulamanın paketi kaldırılır” kabulü ile “Canlı executable hemen free” reddini aynı sözleşmeye bağla.",
      "invariant": "Çalışan imaj backing korunur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_uninstall"
      },
      "dependencies": [
        "K2395"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Açık uygulamanın paketi kaldırılır",
      "counterexample": "Canlı executable hemen free",
      "guestAcceptance": "Uygulama çıkar sonra tek kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_uninstall_positive",
        "negativeName": "os_configuration_uninstall_negative",
        "expectedMarker": "TURKOS/OS/K2400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Çalışan imaj backing korunur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Canlı executable hemen free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2396"
    },
    {
      "id": "K2397",
      "number": 2397,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.uninstall",
      "stage": "implementation",
      "title": "Uygulama kaldırma ömrü · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Çalışan imaj backing korunur.",
      "action": "userspace/src/configuration.rs hedefinde os_configuration_uninstall yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/program_hash.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Çalışan imaj backing korunur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_uninstall"
      },
      "dependencies": [
        "K2396"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Açık uygulamanın paketi kaldırılır",
      "counterexample": "Canlı executable hemen free",
      "guestAcceptance": "Uygulama çıkar sonra tek kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_uninstall_positive",
        "negativeName": "os_configuration_uninstall_negative",
        "expectedMarker": "TURKOS/OS/K2400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Açık uygulamanın paketi kaldırılır ile Canlı executable hemen free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Canlı executable hemen free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2397"
    },
    {
      "id": "K2398",
      "number": 2398,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.uninstall",
      "stage": "positive",
      "title": "Uygulama kaldırma ömrü · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Çalışan imaj backing korunur.",
      "action": "os_configuration_uninstall_positive testini oluştur: “Açık uygulamanın paketi kaldırılır”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Çalışan imaj backing korunur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_uninstall"
      },
      "dependencies": [
        "K2397"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Açık uygulamanın paketi kaldırılır",
      "counterexample": "Canlı executable hemen free",
      "guestAcceptance": "Uygulama çıkar sonra tek kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_uninstall_positive",
        "negativeName": "os_configuration_uninstall_negative",
        "expectedMarker": "TURKOS/OS/K2400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Açık uygulamanın paketi kaldırılır girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Canlı executable hemen free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2398"
    },
    {
      "id": "K2399",
      "number": 2399,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.uninstall",
      "stage": "negative",
      "title": "Uygulama kaldırma ömrü · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Çalışan imaj backing korunur.",
      "action": "os_configuration_uninstall_negative testini oluştur: “Canlı executable hemen free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Çalışan imaj backing korunur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_uninstall"
      },
      "dependencies": [
        "K2398"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Açık uygulamanın paketi kaldırılır",
      "counterexample": "Canlı executable hemen free",
      "guestAcceptance": "Uygulama çıkar sonra tek kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_uninstall_positive",
        "negativeName": "os_configuration_uninstall_negative",
        "expectedMarker": "TURKOS/OS/K2400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Canlı executable hemen free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Canlı executable hemen free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2399"
    },
    {
      "id": "K2400",
      "number": 2400,
      "phase": 18,
      "module": "configuration",
      "feature": "configuration.uninstall",
      "stage": "integration",
      "title": "Uygulama kaldırma ömrü · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "Kullanılabilir işletim sistemi yalnız kernel probe değildir. Küçük native Rust uygulamalar aynı ABI VFS IPC UIyi tüketir. Bu hamlenin koruduğu değişmez: Çalışan imaj backing korunur.",
      "action": "Tek ürün Image'ında “Uygulama çıkar sonra tek kaynak iadesi” kabulünü koştur. scripts/os-acceptance/configuration.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Çalışan imaj backing korunur",
      "source": {
        "target": "userspace/src/configuration.rs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/program_hash.rs",
        "existingReferenceSha256": "d5d5f6ea4ecf7bbf94f012866c8ed7af5207d8b1b3544942ac9cf0825bdc6009",
        "symbol": "os_configuration_uninstall"
      },
      "dependencies": [
        "K2399"
      ],
      "phasePrerequisites": [
        17
      ],
      "positive": "Açık uygulamanın paketi kaldırılır",
      "counterexample": "Canlı executable hemen free",
      "guestAcceptance": "Uygulama çıkar sonra tek kaynak iadesi",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "userspace/tests/configuration.rs",
        "harness": "scripts/os-acceptance/configuration.mjs",
        "positiveName": "os_configuration_uninstall_positive",
        "negativeName": "os_configuration_uninstall_negative",
        "expectedMarker": "TURKOS/OS/K2400: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Uygulama çıkar sonra tek kaynak iadesi; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Canlı executable hemen free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-18#k2400"
    },
    {
      "id": "K2401",
      "number": 2401,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.cases",
      "stage": "contract",
      "title": "Tekil OS test kimliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her case kaynak ve imaj hashine bağlıdır.",
      "action": "“Tekil OS test kimliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her case kaynak ve imaj hashine bağlıdır. “K601 ve K2500 ayrı kayıt” kabulü ile “İki case aynı eski logu kullanır” reddini aynı sözleşmeye bağla.",
      "invariant": "Her case kaynak ve imaj hashine bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_cases"
      },
      "dependencies": [],
      "phasePrerequisites": [
        18
      ],
      "positive": "K601 ve K2500 ayrı kayıt",
      "counterexample": "İki case aynı eski logu kullanır",
      "guestAcceptance": "Duplicate evidence kabul edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_cases_positive",
        "negativeName": "os_acceptance_harness_cases_negative",
        "expectedMarker": "TURKOS/OS/K2405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her case kaynak ve imaj hashine bağlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“İki case aynı eski logu kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2401"
    },
    {
      "id": "K2402",
      "number": 2402,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.cases",
      "stage": "implementation",
      "title": "Tekil OS test kimliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her case kaynak ve imaj hashine bağlıdır.",
      "action": "scripts/os-acceptance/acceptance_harness.mjs hedefinde os_acceptance_harness_cases yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/continuation_tests.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her case kaynak ve imaj hashine bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_cases"
      },
      "dependencies": [
        "K2401"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "K601 ve K2500 ayrı kayıt",
      "counterexample": "İki case aynı eski logu kullanır",
      "guestAcceptance": "Duplicate evidence kabul edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_cases_positive",
        "negativeName": "os_acceptance_harness_cases_negative",
        "expectedMarker": "TURKOS/OS/K2405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. K601 ve K2500 ayrı kayıt ile İki case aynı eski logu kullanır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“İki case aynı eski logu kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2402"
    },
    {
      "id": "K2403",
      "number": 2403,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.cases",
      "stage": "positive",
      "title": "Tekil OS test kimliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her case kaynak ve imaj hashine bağlıdır.",
      "action": "os_acceptance_harness_cases_positive testini oluştur: “K601 ve K2500 ayrı kayıt”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her case kaynak ve imaj hashine bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_cases"
      },
      "dependencies": [
        "K2402"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "K601 ve K2500 ayrı kayıt",
      "counterexample": "İki case aynı eski logu kullanır",
      "guestAcceptance": "Duplicate evidence kabul edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_cases_positive",
        "negativeName": "os_acceptance_harness_cases_negative",
        "expectedMarker": "TURKOS/OS/K2405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; K601 ve K2500 ayrı kayıt girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“İki case aynı eski logu kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2403"
    },
    {
      "id": "K2404",
      "number": 2404,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.cases",
      "stage": "negative",
      "title": "Tekil OS test kimliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her case kaynak ve imaj hashine bağlıdır.",
      "action": "os_acceptance_harness_cases_negative testini oluştur: “İki case aynı eski logu kullanır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her case kaynak ve imaj hashine bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_cases"
      },
      "dependencies": [
        "K2403"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "K601 ve K2500 ayrı kayıt",
      "counterexample": "İki case aynı eski logu kullanır",
      "guestAcceptance": "Duplicate evidence kabul edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_cases_positive",
        "negativeName": "os_acceptance_harness_cases_negative",
        "expectedMarker": "TURKOS/OS/K2405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki case aynı eski logu kullanır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“İki case aynı eski logu kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2404"
    },
    {
      "id": "K2405",
      "number": 2405,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.cases",
      "stage": "integration",
      "title": "Tekil OS test kimliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her case kaynak ve imaj hashine bağlıdır.",
      "action": "Tek ürün Image'ında “Duplicate evidence kabul edilmez” kabulünü koştur. scripts/os-acceptance/acceptance_harness.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her case kaynak ve imaj hashine bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_cases"
      },
      "dependencies": [
        "K2404"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "K601 ve K2500 ayrı kayıt",
      "counterexample": "İki case aynı eski logu kullanır",
      "guestAcceptance": "Duplicate evidence kabul edilmez",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_cases_positive",
        "negativeName": "os_acceptance_harness_cases_negative",
        "expectedMarker": "TURKOS/OS/K2405: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Duplicate evidence kabul edilmez; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“İki case aynı eski logu kullanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2405"
    },
    {
      "id": "K2406",
      "number": 2406,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.zero_tests",
      "stage": "contract",
      "title": "Sıfır test başarı reddi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Filtre sıfır test döndürürse kapı geçmez.",
      "action": "“Sıfır test başarı reddi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Filtre sıfır test döndürürse kapı geçmez. “Bir adlandırılmış Rust test” kabulü ile “Yanlış filtreyle zero passed” reddini aynı sözleşmeye bağla.",
      "invariant": "Filtre sıfır test döndürürse kapı geçmez",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_zero_tests"
      },
      "dependencies": [
        "K2405"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir adlandırılmış Rust test",
      "counterexample": "Yanlış filtreyle zero passed",
      "guestAcceptance": "Harness açık eksik test hatası verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_zero_tests_positive",
        "negativeName": "os_acceptance_harness_zero_tests_negative",
        "expectedMarker": "TURKOS/OS/K2410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Filtre sıfır test döndürürse kapı geçmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Yanlış filtreyle zero passed” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2406"
    },
    {
      "id": "K2407",
      "number": 2407,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.zero_tests",
      "stage": "implementation",
      "title": "Sıfır test başarı reddi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Filtre sıfır test döndürürse kapı geçmez.",
      "action": "scripts/os-acceptance/acceptance_harness.mjs hedefinde os_acceptance_harness_zero_tests yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/continuation_tests.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Filtre sıfır test döndürürse kapı geçmez",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_zero_tests"
      },
      "dependencies": [
        "K2406"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir adlandırılmış Rust test",
      "counterexample": "Yanlış filtreyle zero passed",
      "guestAcceptance": "Harness açık eksik test hatası verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_zero_tests_positive",
        "negativeName": "os_acceptance_harness_zero_tests_negative",
        "expectedMarker": "TURKOS/OS/K2410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir adlandırılmış Rust test ile Yanlış filtreyle zero passed ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Yanlış filtreyle zero passed” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2407"
    },
    {
      "id": "K2408",
      "number": 2408,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.zero_tests",
      "stage": "positive",
      "title": "Sıfır test başarı reddi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Filtre sıfır test döndürürse kapı geçmez.",
      "action": "os_acceptance_harness_zero_tests_positive testini oluştur: “Bir adlandırılmış Rust test”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Filtre sıfır test döndürürse kapı geçmez",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_zero_tests"
      },
      "dependencies": [
        "K2407"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir adlandırılmış Rust test",
      "counterexample": "Yanlış filtreyle zero passed",
      "guestAcceptance": "Harness açık eksik test hatası verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_zero_tests_positive",
        "negativeName": "os_acceptance_harness_zero_tests_negative",
        "expectedMarker": "TURKOS/OS/K2410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir adlandırılmış Rust test girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Yanlış filtreyle zero passed” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2408"
    },
    {
      "id": "K2409",
      "number": 2409,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.zero_tests",
      "stage": "negative",
      "title": "Sıfır test başarı reddi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Filtre sıfır test döndürürse kapı geçmez.",
      "action": "os_acceptance_harness_zero_tests_negative testini oluştur: “Yanlış filtreyle zero passed”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Filtre sıfır test döndürürse kapı geçmez",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_zero_tests"
      },
      "dependencies": [
        "K2408"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir adlandırılmış Rust test",
      "counterexample": "Yanlış filtreyle zero passed",
      "guestAcceptance": "Harness açık eksik test hatası verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_zero_tests_positive",
        "negativeName": "os_acceptance_harness_zero_tests_negative",
        "expectedMarker": "TURKOS/OS/K2410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yanlış filtreyle zero passed karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Yanlış filtreyle zero passed” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2409"
    },
    {
      "id": "K2410",
      "number": 2410,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.zero_tests",
      "stage": "integration",
      "title": "Sıfır test başarı reddi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Filtre sıfır test döndürürse kapı geçmez.",
      "action": "Tek ürün Image'ında “Harness açık eksik test hatası verir” kabulünü koştur. scripts/os-acceptance/acceptance_harness.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Filtre sıfır test döndürürse kapı geçmez",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_zero_tests"
      },
      "dependencies": [
        "K2409"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir adlandırılmış Rust test",
      "counterexample": "Yanlış filtreyle zero passed",
      "guestAcceptance": "Harness açık eksik test hatası verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_zero_tests_positive",
        "negativeName": "os_acceptance_harness_zero_tests_negative",
        "expectedMarker": "TURKOS/OS/K2410: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Harness açık eksik test hatası verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Yanlış filtreyle zero passed” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2410"
    },
    {
      "id": "K2411",
      "number": 2411,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.guest_oracle",
      "stage": "contract",
      "title": "Konuk oracle ve sıra · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarı markerı tek başına yeterli olmaz.",
      "action": "“Konuk oracle ve sıra” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başarı markerı tek başına yeterli olmaz. “BOOT runtime workload sonuç sırası” kabulü ile “Elle eklenmiş PASS satırı” reddini aynı sözleşmeye bağla.",
      "invariant": "Başarı markerı tek başına yeterli olmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_guest_oracle"
      },
      "dependencies": [
        "K2410"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "BOOT runtime workload sonuç sırası",
      "counterexample": "Elle eklenmiş PASS satırı",
      "guestAcceptance": "Hash durum muhasebe birlikte denetlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_guest_oracle_positive",
        "negativeName": "os_acceptance_harness_guest_oracle_negative",
        "expectedMarker": "TURKOS/OS/K2415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başarı markerı tek başına yeterli olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Elle eklenmiş PASS satırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2411"
    },
    {
      "id": "K2412",
      "number": 2412,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.guest_oracle",
      "stage": "implementation",
      "title": "Konuk oracle ve sıra · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarı markerı tek başına yeterli olmaz.",
      "action": "scripts/os-acceptance/acceptance_harness.mjs hedefinde os_acceptance_harness_guest_oracle yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/continuation_tests.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başarı markerı tek başına yeterli olmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_guest_oracle"
      },
      "dependencies": [
        "K2411"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "BOOT runtime workload sonuç sırası",
      "counterexample": "Elle eklenmiş PASS satırı",
      "guestAcceptance": "Hash durum muhasebe birlikte denetlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_guest_oracle_positive",
        "negativeName": "os_acceptance_harness_guest_oracle_negative",
        "expectedMarker": "TURKOS/OS/K2415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. BOOT runtime workload sonuç sırası ile Elle eklenmiş PASS satırı ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Elle eklenmiş PASS satırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2412"
    },
    {
      "id": "K2413",
      "number": 2413,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.guest_oracle",
      "stage": "positive",
      "title": "Konuk oracle ve sıra · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarı markerı tek başına yeterli olmaz.",
      "action": "os_acceptance_harness_guest_oracle_positive testini oluştur: “BOOT runtime workload sonuç sırası”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başarı markerı tek başına yeterli olmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_guest_oracle"
      },
      "dependencies": [
        "K2412"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "BOOT runtime workload sonuç sırası",
      "counterexample": "Elle eklenmiş PASS satırı",
      "guestAcceptance": "Hash durum muhasebe birlikte denetlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_guest_oracle_positive",
        "negativeName": "os_acceptance_harness_guest_oracle_negative",
        "expectedMarker": "TURKOS/OS/K2415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; BOOT runtime workload sonuç sırası girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Elle eklenmiş PASS satırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2413"
    },
    {
      "id": "K2414",
      "number": 2414,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.guest_oracle",
      "stage": "negative",
      "title": "Konuk oracle ve sıra · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarı markerı tek başına yeterli olmaz.",
      "action": "os_acceptance_harness_guest_oracle_negative testini oluştur: “Elle eklenmiş PASS satırı”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başarı markerı tek başına yeterli olmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_guest_oracle"
      },
      "dependencies": [
        "K2413"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "BOOT runtime workload sonuç sırası",
      "counterexample": "Elle eklenmiş PASS satırı",
      "guestAcceptance": "Hash durum muhasebe birlikte denetlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_guest_oracle_positive",
        "negativeName": "os_acceptance_harness_guest_oracle_negative",
        "expectedMarker": "TURKOS/OS/K2415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Elle eklenmiş PASS satırı karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Elle eklenmiş PASS satırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2414"
    },
    {
      "id": "K2415",
      "number": 2415,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.guest_oracle",
      "stage": "integration",
      "title": "Konuk oracle ve sıra · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarı markerı tek başına yeterli olmaz.",
      "action": "Tek ürün Image'ında “Hash durum muhasebe birlikte denetlenir” kabulünü koştur. scripts/os-acceptance/acceptance_harness.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başarı markerı tek başına yeterli olmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_guest_oracle"
      },
      "dependencies": [
        "K2414"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "BOOT runtime workload sonuç sırası",
      "counterexample": "Elle eklenmiş PASS satırı",
      "guestAcceptance": "Hash durum muhasebe birlikte denetlenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_guest_oracle_positive",
        "negativeName": "os_acceptance_harness_guest_oracle_negative",
        "expectedMarker": "TURKOS/OS/K2415: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hash durum muhasebe birlikte denetlenir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Elle eklenmiş PASS satırı” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2415"
    },
    {
      "id": "K2416",
      "number": 2416,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.failures",
      "stage": "contract",
      "title": "Başarısız koşu arşivi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarısız rapor sonradan PASS yapılmaz.",
      "action": "“Başarısız koşu arşivi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Başarısız rapor sonradan PASS yapılmaz. “Bir fail bir yeni pass” kabulü ile “Eski failure dosyası değiştirilir” reddini aynı sözleşmeye bağla.",
      "invariant": "Başarısız rapor sonradan PASS yapılmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_failures"
      },
      "dependencies": [
        "K2415"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir fail bir yeni pass",
      "counterexample": "Eski failure dosyası değiştirilir",
      "guestAcceptance": "İki koşu ayrı kimlik ve hash taşır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_failures_positive",
        "negativeName": "os_acceptance_harness_failures_negative",
        "expectedMarker": "TURKOS/OS/K2420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Başarısız rapor sonradan PASS yapılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski failure dosyası değiştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2416"
    },
    {
      "id": "K2417",
      "number": 2417,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.failures",
      "stage": "implementation",
      "title": "Başarısız koşu arşivi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarısız rapor sonradan PASS yapılmaz.",
      "action": "scripts/os-acceptance/acceptance_harness.mjs hedefinde os_acceptance_harness_failures yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/continuation_tests.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Başarısız rapor sonradan PASS yapılmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_failures"
      },
      "dependencies": [
        "K2416"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir fail bir yeni pass",
      "counterexample": "Eski failure dosyası değiştirilir",
      "guestAcceptance": "İki koşu ayrı kimlik ve hash taşır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_failures_positive",
        "negativeName": "os_acceptance_harness_failures_negative",
        "expectedMarker": "TURKOS/OS/K2420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bir fail bir yeni pass ile Eski failure dosyası değiştirilir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski failure dosyası değiştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2417"
    },
    {
      "id": "K2418",
      "number": 2418,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.failures",
      "stage": "positive",
      "title": "Başarısız koşu arşivi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarısız rapor sonradan PASS yapılmaz.",
      "action": "os_acceptance_harness_failures_positive testini oluştur: “Bir fail bir yeni pass”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Başarısız rapor sonradan PASS yapılmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_failures"
      },
      "dependencies": [
        "K2417"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir fail bir yeni pass",
      "counterexample": "Eski failure dosyası değiştirilir",
      "guestAcceptance": "İki koşu ayrı kimlik ve hash taşır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_failures_positive",
        "negativeName": "os_acceptance_harness_failures_negative",
        "expectedMarker": "TURKOS/OS/K2420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bir fail bir yeni pass girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski failure dosyası değiştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2418"
    },
    {
      "id": "K2419",
      "number": 2419,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.failures",
      "stage": "negative",
      "title": "Başarısız koşu arşivi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarısız rapor sonradan PASS yapılmaz.",
      "action": "os_acceptance_harness_failures_negative testini oluştur: “Eski failure dosyası değiştirilir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Başarısız rapor sonradan PASS yapılmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_failures"
      },
      "dependencies": [
        "K2418"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir fail bir yeni pass",
      "counterexample": "Eski failure dosyası değiştirilir",
      "guestAcceptance": "İki koşu ayrı kimlik ve hash taşır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_failures_positive",
        "negativeName": "os_acceptance_harness_failures_negative",
        "expectedMarker": "TURKOS/OS/K2420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski failure dosyası değiştirilir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski failure dosyası değiştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2419"
    },
    {
      "id": "K2420",
      "number": 2420,
      "phase": 19,
      "module": "acceptance_harness",
      "feature": "acceptance_harness.failures",
      "stage": "integration",
      "title": "Başarısız koşu arşivi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Başarısız rapor sonradan PASS yapılmaz.",
      "action": "Tek ürün Image'ında “İki koşu ayrı kimlik ve hash taşır” kabulünü koştur. scripts/os-acceptance/acceptance_harness.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Başarısız rapor sonradan PASS yapılmaz",
      "source": {
        "target": "scripts/os-acceptance/acceptance_harness.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/continuation_tests.rs",
        "existingReferenceSha256": "977b61bb21de9e358a7a755f4eb38cc8be972a92942a73c98caf4c510ad7f75c",
        "symbol": "os_acceptance_harness_failures"
      },
      "dependencies": [
        "K2419"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bir fail bir yeni pass",
      "counterexample": "Eski failure dosyası değiştirilir",
      "guestAcceptance": "İki koşu ayrı kimlik ve hash taşır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/acceptance_harness.mjs",
        "harness": "scripts/os-acceptance/acceptance_harness.mjs",
        "positiveName": "os_acceptance_harness_failures_positive",
        "negativeName": "os_acceptance_harness_failures_negative",
        "expectedMarker": "TURKOS/OS/K2420: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İki koşu ayrı kimlik ve hash taşır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski failure dosyası değiştirilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2420"
    },
    {
      "id": "K2421",
      "number": 2421,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.inputs",
      "stage": "contract",
      "title": "Sınır parser korpusları · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: DTB ELF FS IPC network hedefleri ayrıdır.",
      "action": "“Sınır parser korpusları” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: DTB ELF FS IPC network hedefleri ayrıdır. “Her parser küçük bounded girdiler” kabulü ile “Tek korpus bütün parser diye sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "DTB ELF FS IPC network hedefleri ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_inputs"
      },
      "dependencies": [
        "K2420"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Her parser küçük bounded girdiler",
      "counterexample": "Tek korpus bütün parser diye sayılır",
      "guestAcceptance": "Target ve input hashleri ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_inputs_positive",
        "negativeName": "os_system_fuzz_inputs_negative",
        "expectedMarker": "TURKOS/OS/K2425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu DTB ELF FS IPC network hedefleri ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Tek korpus bütün parser diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2421"
    },
    {
      "id": "K2422",
      "number": 2422,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.inputs",
      "stage": "implementation",
      "title": "Sınır parser korpusları · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: DTB ELF FS IPC network hedefleri ayrıdır.",
      "action": "scripts/os-acceptance/system_fuzz.mjs hedefinde os_system_fuzz_inputs yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "DTB ELF FS IPC network hedefleri ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_inputs"
      },
      "dependencies": [
        "K2421"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Her parser küçük bounded girdiler",
      "counterexample": "Tek korpus bütün parser diye sayılır",
      "guestAcceptance": "Target ve input hashleri ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_inputs_positive",
        "negativeName": "os_system_fuzz_inputs_negative",
        "expectedMarker": "TURKOS/OS/K2425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Her parser küçük bounded girdiler ile Tek korpus bütün parser diye sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Tek korpus bütün parser diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2422"
    },
    {
      "id": "K2423",
      "number": 2423,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.inputs",
      "stage": "positive",
      "title": "Sınır parser korpusları · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: DTB ELF FS IPC network hedefleri ayrıdır.",
      "action": "os_system_fuzz_inputs_positive testini oluştur: “Her parser küçük bounded girdiler”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "DTB ELF FS IPC network hedefleri ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_inputs"
      },
      "dependencies": [
        "K2422"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Her parser küçük bounded girdiler",
      "counterexample": "Tek korpus bütün parser diye sayılır",
      "guestAcceptance": "Target ve input hashleri ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_inputs_positive",
        "negativeName": "os_system_fuzz_inputs_negative",
        "expectedMarker": "TURKOS/OS/K2425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Her parser küçük bounded girdiler girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Tek korpus bütün parser diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2423"
    },
    {
      "id": "K2424",
      "number": 2424,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.inputs",
      "stage": "negative",
      "title": "Sınır parser korpusları · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: DTB ELF FS IPC network hedefleri ayrıdır.",
      "action": "os_system_fuzz_inputs_negative testini oluştur: “Tek korpus bütün parser diye sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "DTB ELF FS IPC network hedefleri ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_inputs"
      },
      "dependencies": [
        "K2423"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Her parser küçük bounded girdiler",
      "counterexample": "Tek korpus bütün parser diye sayılır",
      "guestAcceptance": "Target ve input hashleri ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_inputs_positive",
        "negativeName": "os_system_fuzz_inputs_negative",
        "expectedMarker": "TURKOS/OS/K2425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tek korpus bütün parser diye sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Tek korpus bütün parser diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2424"
    },
    {
      "id": "K2425",
      "number": 2425,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.inputs",
      "stage": "integration",
      "title": "Sınır parser korpusları · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: DTB ELF FS IPC network hedefleri ayrıdır.",
      "action": "Tek ürün Image'ında “Target ve input hashleri ayrı” kabulünü koştur. scripts/os-acceptance/system_fuzz.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "DTB ELF FS IPC network hedefleri ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_inputs"
      },
      "dependencies": [
        "K2424"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Her parser küçük bounded girdiler",
      "counterexample": "Tek korpus bütün parser diye sayılır",
      "guestAcceptance": "Target ve input hashleri ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_inputs_positive",
        "negativeName": "os_system_fuzz_inputs_negative",
        "expectedMarker": "TURKOS/OS/K2425: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Target ve input hashleri ayrı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Tek korpus bütün parser diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2425"
    },
    {
      "id": "K2426",
      "number": 2426,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.campaign",
      "stage": "contract",
      "title": "Sürümlü fuzz kampanyası · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Seed engine süre kaynak ölçümü kayıtlıdır.",
      "action": "“Sürümlü fuzz kampanyası” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Seed engine süre kaynak ölçümü kayıtlıdır. “Sınırlı reproducible kampanya” kabulü ile “Süre veya corpus sürümü yok” reddini aynı sözleşmeye bağla.",
      "invariant": "Seed engine süre kaynak ölçümü kayıtlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_campaign"
      },
      "dependencies": [
        "K2425"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Sınırlı reproducible kampanya",
      "counterexample": "Süre veya corpus sürümü yok",
      "guestAcceptance": "Kampanya raporu incomplete kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_campaign_positive",
        "negativeName": "os_system_fuzz_campaign_negative",
        "expectedMarker": "TURKOS/OS/K2430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Seed engine süre kaynak ölçümü kayıtlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Süre veya corpus sürümü yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2426"
    },
    {
      "id": "K2427",
      "number": 2427,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.campaign",
      "stage": "implementation",
      "title": "Sürümlü fuzz kampanyası · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Seed engine süre kaynak ölçümü kayıtlıdır.",
      "action": "scripts/os-acceptance/system_fuzz.mjs hedefinde os_system_fuzz_campaign yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Seed engine süre kaynak ölçümü kayıtlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_campaign"
      },
      "dependencies": [
        "K2426"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Sınırlı reproducible kampanya",
      "counterexample": "Süre veya corpus sürümü yok",
      "guestAcceptance": "Kampanya raporu incomplete kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_campaign_positive",
        "negativeName": "os_system_fuzz_campaign_negative",
        "expectedMarker": "TURKOS/OS/K2430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Sınırlı reproducible kampanya ile Süre veya corpus sürümü yok ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Süre veya corpus sürümü yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2427"
    },
    {
      "id": "K2428",
      "number": 2428,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.campaign",
      "stage": "positive",
      "title": "Sürümlü fuzz kampanyası · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Seed engine süre kaynak ölçümü kayıtlıdır.",
      "action": "os_system_fuzz_campaign_positive testini oluştur: “Sınırlı reproducible kampanya”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Seed engine süre kaynak ölçümü kayıtlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_campaign"
      },
      "dependencies": [
        "K2427"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Sınırlı reproducible kampanya",
      "counterexample": "Süre veya corpus sürümü yok",
      "guestAcceptance": "Kampanya raporu incomplete kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_campaign_positive",
        "negativeName": "os_system_fuzz_campaign_negative",
        "expectedMarker": "TURKOS/OS/K2430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Sınırlı reproducible kampanya girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Süre veya corpus sürümü yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2428"
    },
    {
      "id": "K2429",
      "number": 2429,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.campaign",
      "stage": "negative",
      "title": "Sürümlü fuzz kampanyası · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Seed engine süre kaynak ölçümü kayıtlıdır.",
      "action": "os_system_fuzz_campaign_negative testini oluştur: “Süre veya corpus sürümü yok”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Seed engine süre kaynak ölçümü kayıtlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_campaign"
      },
      "dependencies": [
        "K2428"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Sınırlı reproducible kampanya",
      "counterexample": "Süre veya corpus sürümü yok",
      "guestAcceptance": "Kampanya raporu incomplete kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_campaign_positive",
        "negativeName": "os_system_fuzz_campaign_negative",
        "expectedMarker": "TURKOS/OS/K2430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Süre veya corpus sürümü yok karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Süre veya corpus sürümü yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2429"
    },
    {
      "id": "K2430",
      "number": 2430,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.campaign",
      "stage": "integration",
      "title": "Sürümlü fuzz kampanyası · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Seed engine süre kaynak ölçümü kayıtlıdır.",
      "action": "Tek ürün Image'ında “Kampanya raporu incomplete kalır” kabulünü koştur. scripts/os-acceptance/system_fuzz.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Seed engine süre kaynak ölçümü kayıtlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_campaign"
      },
      "dependencies": [
        "K2429"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Sınırlı reproducible kampanya",
      "counterexample": "Süre veya corpus sürümü yok",
      "guestAcceptance": "Kampanya raporu incomplete kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_campaign_positive",
        "negativeName": "os_system_fuzz_campaign_negative",
        "expectedMarker": "TURKOS/OS/K2430: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kampanya raporu incomplete kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Süre veya corpus sürümü yok” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2430"
    },
    {
      "id": "K2431",
      "number": 2431,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.minimize",
      "stage": "contract",
      "title": "Bulguyu küçültme ve regresyon · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Fixture gerçek bulguya hash ile bağlıdır.",
      "action": "“Bulguyu küçültme ve regresyon” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Fixture gerçek bulguya hash ile bağlıdır. “Crashden küçük aynı oracle input” kabulü ile “Uydurma fixture fuzz bulgusu” reddini aynı sözleşmeye bağla.",
      "invariant": "Fixture gerçek bulguya hash ile bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_minimize"
      },
      "dependencies": [
        "K2430"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Crashden küçük aynı oracle input",
      "counterexample": "Uydurma fixture fuzz bulgusu",
      "guestAcceptance": "Önce fail sonra fix pass ayrı kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_minimize_positive",
        "negativeName": "os_system_fuzz_minimize_negative",
        "expectedMarker": "TURKOS/OS/K2435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Fixture gerçek bulguya hash ile bağlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Uydurma fixture fuzz bulgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2431"
    },
    {
      "id": "K2432",
      "number": 2432,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.minimize",
      "stage": "implementation",
      "title": "Bulguyu küçültme ve regresyon · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Fixture gerçek bulguya hash ile bağlıdır.",
      "action": "scripts/os-acceptance/system_fuzz.mjs hedefinde os_system_fuzz_minimize yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Fixture gerçek bulguya hash ile bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_minimize"
      },
      "dependencies": [
        "K2431"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Crashden küçük aynı oracle input",
      "counterexample": "Uydurma fixture fuzz bulgusu",
      "guestAcceptance": "Önce fail sonra fix pass ayrı kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_minimize_positive",
        "negativeName": "os_system_fuzz_minimize_negative",
        "expectedMarker": "TURKOS/OS/K2435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Crashden küçük aynı oracle input ile Uydurma fixture fuzz bulgusu ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Uydurma fixture fuzz bulgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2432"
    },
    {
      "id": "K2433",
      "number": 2433,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.minimize",
      "stage": "positive",
      "title": "Bulguyu küçültme ve regresyon · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Fixture gerçek bulguya hash ile bağlıdır.",
      "action": "os_system_fuzz_minimize_positive testini oluştur: “Crashden küçük aynı oracle input”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Fixture gerçek bulguya hash ile bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_minimize"
      },
      "dependencies": [
        "K2432"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Crashden küçük aynı oracle input",
      "counterexample": "Uydurma fixture fuzz bulgusu",
      "guestAcceptance": "Önce fail sonra fix pass ayrı kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_minimize_positive",
        "negativeName": "os_system_fuzz_minimize_negative",
        "expectedMarker": "TURKOS/OS/K2435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Crashden küçük aynı oracle input girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Uydurma fixture fuzz bulgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2433"
    },
    {
      "id": "K2434",
      "number": 2434,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.minimize",
      "stage": "negative",
      "title": "Bulguyu küçültme ve regresyon · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Fixture gerçek bulguya hash ile bağlıdır.",
      "action": "os_system_fuzz_minimize_negative testini oluştur: “Uydurma fixture fuzz bulgusu”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Fixture gerçek bulguya hash ile bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_minimize"
      },
      "dependencies": [
        "K2433"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Crashden küçük aynı oracle input",
      "counterexample": "Uydurma fixture fuzz bulgusu",
      "guestAcceptance": "Önce fail sonra fix pass ayrı kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_minimize_positive",
        "negativeName": "os_system_fuzz_minimize_negative",
        "expectedMarker": "TURKOS/OS/K2435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Uydurma fixture fuzz bulgusu karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Uydurma fixture fuzz bulgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2434"
    },
    {
      "id": "K2435",
      "number": 2435,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.minimize",
      "stage": "integration",
      "title": "Bulguyu küçültme ve regresyon · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Fixture gerçek bulguya hash ile bağlıdır.",
      "action": "Tek ürün Image'ında “Önce fail sonra fix pass ayrı kayıt” kabulünü koştur. scripts/os-acceptance/system_fuzz.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Fixture gerçek bulguya hash ile bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_minimize"
      },
      "dependencies": [
        "K2434"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Crashden küçük aynı oracle input",
      "counterexample": "Uydurma fixture fuzz bulgusu",
      "guestAcceptance": "Önce fail sonra fix pass ayrı kayıt",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_minimize_positive",
        "negativeName": "os_system_fuzz_minimize_negative",
        "expectedMarker": "TURKOS/OS/K2435: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Önce fail sonra fix pass ayrı kayıt; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Uydurma fixture fuzz bulgusu” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2435"
    },
    {
      "id": "K2436",
      "number": 2436,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.replay",
      "stage": "contract",
      "title": "Kalıcı corpus tekrar kapısı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her input beklenen ret veya sonucu taşır.",
      "action": "“Kalıcı corpus tekrar kapısı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her input beklenen ret veya sonucu taşır. “Bütün korpus temiz source koşusu” kabulü ile “Input atlanır veya oracle gevşetilir” reddini aynı sözleşmeye bağla.",
      "invariant": "Her input beklenen ret veya sonucu taşır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_replay"
      },
      "dependencies": [
        "K2435"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün korpus temiz source koşusu",
      "counterexample": "Input atlanır veya oracle gevşetilir",
      "guestAcceptance": "Eksik vaka gate başarısız olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_replay_positive",
        "negativeName": "os_system_fuzz_replay_negative",
        "expectedMarker": "TURKOS/OS/K2440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her input beklenen ret veya sonucu taşır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Input atlanır veya oracle gevşetilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2436"
    },
    {
      "id": "K2437",
      "number": 2437,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.replay",
      "stage": "implementation",
      "title": "Kalıcı corpus tekrar kapısı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her input beklenen ret veya sonucu taşır.",
      "action": "scripts/os-acceptance/system_fuzz.mjs hedefinde os_system_fuzz_replay yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/dtb.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her input beklenen ret veya sonucu taşır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_replay"
      },
      "dependencies": [
        "K2436"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün korpus temiz source koşusu",
      "counterexample": "Input atlanır veya oracle gevşetilir",
      "guestAcceptance": "Eksik vaka gate başarısız olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_replay_positive",
        "negativeName": "os_system_fuzz_replay_negative",
        "expectedMarker": "TURKOS/OS/K2440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bütün korpus temiz source koşusu ile Input atlanır veya oracle gevşetilir ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Input atlanır veya oracle gevşetilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2437"
    },
    {
      "id": "K2438",
      "number": 2438,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.replay",
      "stage": "positive",
      "title": "Kalıcı corpus tekrar kapısı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her input beklenen ret veya sonucu taşır.",
      "action": "os_system_fuzz_replay_positive testini oluştur: “Bütün korpus temiz source koşusu”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her input beklenen ret veya sonucu taşır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_replay"
      },
      "dependencies": [
        "K2437"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün korpus temiz source koşusu",
      "counterexample": "Input atlanır veya oracle gevşetilir",
      "guestAcceptance": "Eksik vaka gate başarısız olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_replay_positive",
        "negativeName": "os_system_fuzz_replay_negative",
        "expectedMarker": "TURKOS/OS/K2440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bütün korpus temiz source koşusu girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Input atlanır veya oracle gevşetilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2438"
    },
    {
      "id": "K2439",
      "number": 2439,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.replay",
      "stage": "negative",
      "title": "Kalıcı corpus tekrar kapısı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her input beklenen ret veya sonucu taşır.",
      "action": "os_system_fuzz_replay_negative testini oluştur: “Input atlanır veya oracle gevşetilir”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her input beklenen ret veya sonucu taşır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_replay"
      },
      "dependencies": [
        "K2438"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün korpus temiz source koşusu",
      "counterexample": "Input atlanır veya oracle gevşetilir",
      "guestAcceptance": "Eksik vaka gate başarısız olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_replay_positive",
        "negativeName": "os_system_fuzz_replay_negative",
        "expectedMarker": "TURKOS/OS/K2440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Input atlanır veya oracle gevşetilir karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Input atlanır veya oracle gevşetilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2439"
    },
    {
      "id": "K2440",
      "number": 2440,
      "phase": 19,
      "module": "system_fuzz",
      "feature": "system_fuzz.replay",
      "stage": "integration",
      "title": "Kalıcı corpus tekrar kapısı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her input beklenen ret veya sonucu taşır.",
      "action": "Tek ürün Image'ında “Eksik vaka gate başarısız olur” kabulünü koştur. scripts/os-acceptance/system_fuzz.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her input beklenen ret veya sonucu taşır",
      "source": {
        "target": "scripts/os-acceptance/system_fuzz.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/dtb.rs",
        "existingReferenceSha256": "b8ab4aa22859ee7da9e54f9d0c68db7cbbd2049283ce169b68c3ee553a324903",
        "symbol": "os_system_fuzz_replay"
      },
      "dependencies": [
        "K2439"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün korpus temiz source koşusu",
      "counterexample": "Input atlanır veya oracle gevşetilir",
      "guestAcceptance": "Eksik vaka gate başarısız olur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/system_fuzz.mjs",
        "harness": "scripts/os-acceptance/system_fuzz.mjs",
        "positiveName": "os_system_fuzz_replay_positive",
        "negativeName": "os_system_fuzz_replay_negative",
        "expectedMarker": "TURKOS/OS/K2440: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eksik vaka gate başarısız olur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Input atlanır veya oracle gevşetilir” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2440"
    },
    {
      "id": "K2441",
      "number": 2441,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.resources",
      "stage": "contract",
      "title": "ENOSPC ve quota matrisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her tahsis durağı hata kabulüne bağlıdır.",
      "action": "“ENOSPC ve quota matrisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Her tahsis durağı hata kabulüne bağlıdır. “Frame handle queue inode tükenir” kabulü ile “Hata sonrası kaynağın yarısı kalır” reddini aynı sözleşmeye bağla.",
      "invariant": "Her tahsis durağı hata kabulüne bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_resources"
      },
      "dependencies": [
        "K2440"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Frame handle queue inode tükenir",
      "counterexample": "Hata sonrası kaynağın yarısı kalır",
      "guestAcceptance": "Başlangıç son sahiplik aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_resources_positive",
        "negativeName": "os_fault_matrix_resources_negative",
        "expectedMarker": "TURKOS/OS/K2445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Her tahsis durağı hata kabulüne bağlıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Hata sonrası kaynağın yarısı kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2441"
    },
    {
      "id": "K2442",
      "number": 2442,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.resources",
      "stage": "implementation",
      "title": "ENOSPC ve quota matrisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her tahsis durağı hata kabulüne bağlıdır.",
      "action": "scripts/os-acceptance/fault_matrix.mjs hedefinde os_fault_matrix_resources yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_probe.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Her tahsis durağı hata kabulüne bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_resources"
      },
      "dependencies": [
        "K2441"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Frame handle queue inode tükenir",
      "counterexample": "Hata sonrası kaynağın yarısı kalır",
      "guestAcceptance": "Başlangıç son sahiplik aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_resources_positive",
        "negativeName": "os_fault_matrix_resources_negative",
        "expectedMarker": "TURKOS/OS/K2445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Frame handle queue inode tükenir ile Hata sonrası kaynağın yarısı kalır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Hata sonrası kaynağın yarısı kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2442"
    },
    {
      "id": "K2443",
      "number": 2443,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.resources",
      "stage": "positive",
      "title": "ENOSPC ve quota matrisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her tahsis durağı hata kabulüne bağlıdır.",
      "action": "os_fault_matrix_resources_positive testini oluştur: “Frame handle queue inode tükenir”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Her tahsis durağı hata kabulüne bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_resources"
      },
      "dependencies": [
        "K2442"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Frame handle queue inode tükenir",
      "counterexample": "Hata sonrası kaynağın yarısı kalır",
      "guestAcceptance": "Başlangıç son sahiplik aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_resources_positive",
        "negativeName": "os_fault_matrix_resources_negative",
        "expectedMarker": "TURKOS/OS/K2445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Frame handle queue inode tükenir girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Hata sonrası kaynağın yarısı kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2443"
    },
    {
      "id": "K2444",
      "number": 2444,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.resources",
      "stage": "negative",
      "title": "ENOSPC ve quota matrisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her tahsis durağı hata kabulüne bağlıdır.",
      "action": "os_fault_matrix_resources_negative testini oluştur: “Hata sonrası kaynağın yarısı kalır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Her tahsis durağı hata kabulüne bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_resources"
      },
      "dependencies": [
        "K2443"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Frame handle queue inode tükenir",
      "counterexample": "Hata sonrası kaynağın yarısı kalır",
      "guestAcceptance": "Başlangıç son sahiplik aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_resources_positive",
        "negativeName": "os_fault_matrix_resources_negative",
        "expectedMarker": "TURKOS/OS/K2445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hata sonrası kaynağın yarısı kalır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Hata sonrası kaynağın yarısı kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2444"
    },
    {
      "id": "K2445",
      "number": 2445,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.resources",
      "stage": "integration",
      "title": "ENOSPC ve quota matrisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Her tahsis durağı hata kabulüne bağlıdır.",
      "action": "Tek ürün Image'ında “Başlangıç son sahiplik aynı” kabulünü koştur. scripts/os-acceptance/fault_matrix.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Her tahsis durağı hata kabulüne bağlıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_resources"
      },
      "dependencies": [
        "K2444"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Frame handle queue inode tükenir",
      "counterexample": "Hata sonrası kaynağın yarısı kalır",
      "guestAcceptance": "Başlangıç son sahiplik aynı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_resources_positive",
        "negativeName": "os_fault_matrix_resources_negative",
        "expectedMarker": "TURKOS/OS/K2445: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Başlangıç son sahiplik aynı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Hata sonrası kaynağın yarısı kalır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2445"
    },
    {
      "id": "K2446",
      "number": 2446,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.io_faults",
      "stage": "contract",
      "title": "Disk ağ aygıt kopma matrisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Timeout EIO reset ve kapatma ayrıdır.",
      "action": "“Disk ağ aygıt kopma matrisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Timeout EIO reset ve kapatma ayrıdır. “Disk EIO ve ağ link kaybı” kabulü ile “Reset olmadan DMA free” reddini aynı sözleşmeye bağla.",
      "invariant": "Timeout EIO reset ve kapatma ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_io_faults"
      },
      "dependencies": [
        "K2445"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Disk EIO ve ağ link kaybı",
      "counterexample": "Reset olmadan DMA free",
      "guestAcceptance": "Hizmetler tanımlı degraded sonuç verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_io_faults_positive",
        "negativeName": "os_fault_matrix_io_faults_negative",
        "expectedMarker": "TURKOS/OS/K2450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Timeout EIO reset ve kapatma ayrıdır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Reset olmadan DMA free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2446"
    },
    {
      "id": "K2447",
      "number": 2447,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.io_faults",
      "stage": "implementation",
      "title": "Disk ağ aygıt kopma matrisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Timeout EIO reset ve kapatma ayrıdır.",
      "action": "scripts/os-acceptance/fault_matrix.mjs hedefinde os_fault_matrix_io_faults yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_probe.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Timeout EIO reset ve kapatma ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_io_faults"
      },
      "dependencies": [
        "K2446"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Disk EIO ve ağ link kaybı",
      "counterexample": "Reset olmadan DMA free",
      "guestAcceptance": "Hizmetler tanımlı degraded sonuç verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_io_faults_positive",
        "negativeName": "os_fault_matrix_io_faults_negative",
        "expectedMarker": "TURKOS/OS/K2450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Disk EIO ve ağ link kaybı ile Reset olmadan DMA free ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Reset olmadan DMA free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2447"
    },
    {
      "id": "K2448",
      "number": 2448,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.io_faults",
      "stage": "positive",
      "title": "Disk ağ aygıt kopma matrisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Timeout EIO reset ve kapatma ayrıdır.",
      "action": "os_fault_matrix_io_faults_positive testini oluştur: “Disk EIO ve ağ link kaybı”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Timeout EIO reset ve kapatma ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_io_faults"
      },
      "dependencies": [
        "K2447"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Disk EIO ve ağ link kaybı",
      "counterexample": "Reset olmadan DMA free",
      "guestAcceptance": "Hizmetler tanımlı degraded sonuç verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_io_faults_positive",
        "negativeName": "os_fault_matrix_io_faults_negative",
        "expectedMarker": "TURKOS/OS/K2450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Disk EIO ve ağ link kaybı girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Reset olmadan DMA free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2448"
    },
    {
      "id": "K2449",
      "number": 2449,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.io_faults",
      "stage": "negative",
      "title": "Disk ağ aygıt kopma matrisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Timeout EIO reset ve kapatma ayrıdır.",
      "action": "os_fault_matrix_io_faults_negative testini oluştur: “Reset olmadan DMA free”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Timeout EIO reset ve kapatma ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_io_faults"
      },
      "dependencies": [
        "K2448"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Disk EIO ve ağ link kaybı",
      "counterexample": "Reset olmadan DMA free",
      "guestAcceptance": "Hizmetler tanımlı degraded sonuç verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_io_faults_positive",
        "negativeName": "os_fault_matrix_io_faults_negative",
        "expectedMarker": "TURKOS/OS/K2450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Reset olmadan DMA free karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Reset olmadan DMA free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2449"
    },
    {
      "id": "K2450",
      "number": 2450,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.io_faults",
      "stage": "integration",
      "title": "Disk ağ aygıt kopma matrisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Timeout EIO reset ve kapatma ayrıdır.",
      "action": "Tek ürün Image'ında “Hizmetler tanımlı degraded sonuç verir” kabulünü koştur. scripts/os-acceptance/fault_matrix.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Timeout EIO reset ve kapatma ayrıdır",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_io_faults"
      },
      "dependencies": [
        "K2449"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Disk EIO ve ağ link kaybı",
      "counterexample": "Reset olmadan DMA free",
      "guestAcceptance": "Hizmetler tanımlı degraded sonuç verir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_io_faults_positive",
        "negativeName": "os_fault_matrix_io_faults_negative",
        "expectedMarker": "TURKOS/OS/K2450: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Hizmetler tanımlı degraded sonuç verir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Reset olmadan DMA free” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2450"
    },
    {
      "id": "K2451",
      "number": 2451,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.soak",
      "stage": "contract",
      "title": "Uzun ürün workload koşusu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Saatler harcanmış süre olarak ölçülür.",
      "action": "“Uzun ürün workload koşusu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Saatler harcanmış süre olarak ölçülür. “Shell IPC disk network SMP yükü” kabulü ile “Tick kaybı veya büyüyen leak” reddini aynı sözleşmeye bağla.",
      "invariant": "Saatler harcanmış süre olarak ölçülür",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_soak"
      },
      "dependencies": [
        "K2450"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Shell IPC disk network SMP yükü",
      "counterexample": "Tick kaybı veya büyüyen leak",
      "guestAcceptance": "Dağılım kanarya ve kaynak örnekleri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_soak_positive",
        "negativeName": "os_fault_matrix_soak_negative",
        "expectedMarker": "TURKOS/OS/K2455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Saatler harcanmış süre olarak ölçülür kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Tick kaybı veya büyüyen leak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2451"
    },
    {
      "id": "K2452",
      "number": 2452,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.soak",
      "stage": "implementation",
      "title": "Uzun ürün workload koşusu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Saatler harcanmış süre olarak ölçülür.",
      "action": "scripts/os-acceptance/fault_matrix.mjs hedefinde os_fault_matrix_soak yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_probe.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Saatler harcanmış süre olarak ölçülür",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_soak"
      },
      "dependencies": [
        "K2451"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Shell IPC disk network SMP yükü",
      "counterexample": "Tick kaybı veya büyüyen leak",
      "guestAcceptance": "Dağılım kanarya ve kaynak örnekleri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_soak_positive",
        "negativeName": "os_fault_matrix_soak_negative",
        "expectedMarker": "TURKOS/OS/K2455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Shell IPC disk network SMP yükü ile Tick kaybı veya büyüyen leak ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Tick kaybı veya büyüyen leak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2452"
    },
    {
      "id": "K2453",
      "number": 2453,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.soak",
      "stage": "positive",
      "title": "Uzun ürün workload koşusu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Saatler harcanmış süre olarak ölçülür.",
      "action": "os_fault_matrix_soak_positive testini oluştur: “Shell IPC disk network SMP yükü”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Saatler harcanmış süre olarak ölçülür",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_soak"
      },
      "dependencies": [
        "K2452"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Shell IPC disk network SMP yükü",
      "counterexample": "Tick kaybı veya büyüyen leak",
      "guestAcceptance": "Dağılım kanarya ve kaynak örnekleri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_soak_positive",
        "negativeName": "os_fault_matrix_soak_negative",
        "expectedMarker": "TURKOS/OS/K2455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Shell IPC disk network SMP yükü girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Tick kaybı veya büyüyen leak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2453"
    },
    {
      "id": "K2454",
      "number": 2454,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.soak",
      "stage": "negative",
      "title": "Uzun ürün workload koşusu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Saatler harcanmış süre olarak ölçülür.",
      "action": "os_fault_matrix_soak_negative testini oluştur: “Tick kaybı veya büyüyen leak”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Saatler harcanmış süre olarak ölçülür",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_soak"
      },
      "dependencies": [
        "K2453"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Shell IPC disk network SMP yükü",
      "counterexample": "Tick kaybı veya büyüyen leak",
      "guestAcceptance": "Dağılım kanarya ve kaynak örnekleri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_soak_positive",
        "negativeName": "os_fault_matrix_soak_negative",
        "expectedMarker": "TURKOS/OS/K2455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tick kaybı veya büyüyen leak karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Tick kaybı veya büyüyen leak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2454"
    },
    {
      "id": "K2455",
      "number": 2455,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.soak",
      "stage": "integration",
      "title": "Uzun ürün workload koşusu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Saatler harcanmış süre olarak ölçülür.",
      "action": "Tek ürün Image'ında “Dağılım kanarya ve kaynak örnekleri raporlanır” kabulünü koştur. scripts/os-acceptance/fault_matrix.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Saatler harcanmış süre olarak ölçülür",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_soak"
      },
      "dependencies": [
        "K2454"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Shell IPC disk network SMP yükü",
      "counterexample": "Tick kaybı veya büyüyen leak",
      "guestAcceptance": "Dağılım kanarya ve kaynak örnekleri raporlanır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_soak_positive",
        "negativeName": "os_fault_matrix_soak_negative",
        "expectedMarker": "TURKOS/OS/K2455: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Dağılım kanarya ve kaynak örnekleri raporlanır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Tick kaybı veya büyüyen leak” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2455"
    },
    {
      "id": "K2456",
      "number": 2456,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.physical_boundary",
      "stage": "contract",
      "title": "Süreç kesme güç kaybı ayrımı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: SIGKILL fiziksel güç testi değildir.",
      "action": "“Süreç kesme güç kaybı ayrımı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: SIGKILL fiziksel güç testi değildir. “Geçici VM kesinti korpusu” kabulü ile “Host öldürme fiziksel PASS sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "SIGKILL fiziksel güç testi değildir",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_physical_boundary"
      },
      "dependencies": [
        "K2455"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Geçici VM kesinti korpusu",
      "counterexample": "Host öldürme fiziksel PASS sayılır",
      "guestAcceptance": "Kanıt sınırı ve dış deney gereği görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_physical_boundary_positive",
        "negativeName": "os_fault_matrix_physical_boundary_negative",
        "expectedMarker": "TURKOS/OS/K2460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu SIGKILL fiziksel güç testi değildir kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Host öldürme fiziksel PASS sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2456"
    },
    {
      "id": "K2457",
      "number": 2457,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.physical_boundary",
      "stage": "implementation",
      "title": "Süreç kesme güç kaybı ayrımı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: SIGKILL fiziksel güç testi değildir.",
      "action": "scripts/os-acceptance/fault_matrix.mjs hedefinde os_fault_matrix_physical_boundary yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/journal_probe.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "SIGKILL fiziksel güç testi değildir",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_physical_boundary"
      },
      "dependencies": [
        "K2456"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Geçici VM kesinti korpusu",
      "counterexample": "Host öldürme fiziksel PASS sayılır",
      "guestAcceptance": "Kanıt sınırı ve dış deney gereği görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_physical_boundary_positive",
        "negativeName": "os_fault_matrix_physical_boundary_negative",
        "expectedMarker": "TURKOS/OS/K2460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Geçici VM kesinti korpusu ile Host öldürme fiziksel PASS sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Host öldürme fiziksel PASS sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2457"
    },
    {
      "id": "K2458",
      "number": 2458,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.physical_boundary",
      "stage": "positive",
      "title": "Süreç kesme güç kaybı ayrımı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: SIGKILL fiziksel güç testi değildir.",
      "action": "os_fault_matrix_physical_boundary_positive testini oluştur: “Geçici VM kesinti korpusu”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "SIGKILL fiziksel güç testi değildir",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_physical_boundary"
      },
      "dependencies": [
        "K2457"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Geçici VM kesinti korpusu",
      "counterexample": "Host öldürme fiziksel PASS sayılır",
      "guestAcceptance": "Kanıt sınırı ve dış deney gereği görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_physical_boundary_positive",
        "negativeName": "os_fault_matrix_physical_boundary_negative",
        "expectedMarker": "TURKOS/OS/K2460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Geçici VM kesinti korpusu girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Host öldürme fiziksel PASS sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2458"
    },
    {
      "id": "K2459",
      "number": 2459,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.physical_boundary",
      "stage": "negative",
      "title": "Süreç kesme güç kaybı ayrımı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: SIGKILL fiziksel güç testi değildir.",
      "action": "os_fault_matrix_physical_boundary_negative testini oluştur: “Host öldürme fiziksel PASS sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "SIGKILL fiziksel güç testi değildir",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_physical_boundary"
      },
      "dependencies": [
        "K2458"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Geçici VM kesinti korpusu",
      "counterexample": "Host öldürme fiziksel PASS sayılır",
      "guestAcceptance": "Kanıt sınırı ve dış deney gereği görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_physical_boundary_positive",
        "negativeName": "os_fault_matrix_physical_boundary_negative",
        "expectedMarker": "TURKOS/OS/K2460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Host öldürme fiziksel PASS sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Host öldürme fiziksel PASS sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2459"
    },
    {
      "id": "K2460",
      "number": 2460,
      "phase": 19,
      "module": "fault_matrix",
      "feature": "fault_matrix.physical_boundary",
      "stage": "integration",
      "title": "Süreç kesme güç kaybı ayrımı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: SIGKILL fiziksel güç testi değildir.",
      "action": "Tek ürün Image'ında “Kanıt sınırı ve dış deney gereği görünür” kabulünü koştur. scripts/os-acceptance/fault_matrix.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "SIGKILL fiziksel güç testi değildir",
      "source": {
        "target": "scripts/os-acceptance/fault_matrix.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/journal_probe.rs",
        "existingReferenceSha256": "4b66482e92ffff4f74c5fe73d028d5edc2718747280a5e342393c231c86e415d",
        "symbol": "os_fault_matrix_physical_boundary"
      },
      "dependencies": [
        "K2459"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Geçici VM kesinti korpusu",
      "counterexample": "Host öldürme fiziksel PASS sayılır",
      "guestAcceptance": "Kanıt sınırı ve dış deney gereği görünür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/fault_matrix.mjs",
        "harness": "scripts/os-acceptance/fault_matrix.mjs",
        "positiveName": "os_fault_matrix_physical_boundary_positive",
        "negativeName": "os_fault_matrix_physical_boundary_negative",
        "expectedMarker": "TURKOS/OS/K2460: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kanıt sınırı ve dış deney gereği görünür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Host öldürme fiziksel PASS sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2460"
    },
    {
      "id": "K2461",
      "number": 2461,
      "phase": 19,
      "module": "portability",
      "feature": "portability.mac_hosts",
      "stage": "contract",
      "title": "M1 ve M5 yeni imaj matrisi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eski K592 hash yeni kerneli doğrulamaz.",
      "action": "“M1 ve M5 yeni imaj matrisi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Eski K592 hash yeni kerneli doğrulamaz. “Aynı yeni Image iki Macte” kabulü ile “Eski M1 raporu yeni Imagea bağlanır” reddini aynı sözleşmeye bağla.",
      "invariant": "Eski K592 hash yeni kerneli doğrulamaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_mac_hosts"
      },
      "dependencies": [
        "K2460"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Aynı yeni Image iki Macte",
      "counterexample": "Eski M1 raporu yeni Imagea bağlanır",
      "guestAcceptance": "Yeni hashli altı boot iki hostta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_mac_hosts_positive",
        "negativeName": "os_portability_mac_hosts_negative",
        "expectedMarker": "TURKOS/OS/K2465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Eski K592 hash yeni kerneli doğrulamaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski M1 raporu yeni Imagea bağlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2461"
    },
    {
      "id": "K2462",
      "number": 2462,
      "phase": 19,
      "module": "portability",
      "feature": "portability.mac_hosts",
      "stage": "implementation",
      "title": "M1 ve M5 yeni imaj matrisi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eski K592 hash yeni kerneli doğrulamaz.",
      "action": "scripts/os-acceptance/portability.mjs hedefinde os_portability_mac_hosts yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/bootinfo.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Eski K592 hash yeni kerneli doğrulamaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_mac_hosts"
      },
      "dependencies": [
        "K2461"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Aynı yeni Image iki Macte",
      "counterexample": "Eski M1 raporu yeni Imagea bağlanır",
      "guestAcceptance": "Yeni hashli altı boot iki hostta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_mac_hosts_positive",
        "negativeName": "os_portability_mac_hosts_negative",
        "expectedMarker": "TURKOS/OS/K2465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Aynı yeni Image iki Macte ile Eski M1 raporu yeni Imagea bağlanır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski M1 raporu yeni Imagea bağlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2462"
    },
    {
      "id": "K2463",
      "number": 2463,
      "phase": 19,
      "module": "portability",
      "feature": "portability.mac_hosts",
      "stage": "positive",
      "title": "M1 ve M5 yeni imaj matrisi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eski K592 hash yeni kerneli doğrulamaz.",
      "action": "os_portability_mac_hosts_positive testini oluştur: “Aynı yeni Image iki Macte”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Eski K592 hash yeni kerneli doğrulamaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_mac_hosts"
      },
      "dependencies": [
        "K2462"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Aynı yeni Image iki Macte",
      "counterexample": "Eski M1 raporu yeni Imagea bağlanır",
      "guestAcceptance": "Yeni hashli altı boot iki hostta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_mac_hosts_positive",
        "negativeName": "os_portability_mac_hosts_negative",
        "expectedMarker": "TURKOS/OS/K2465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Aynı yeni Image iki Macte girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski M1 raporu yeni Imagea bağlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2463"
    },
    {
      "id": "K2464",
      "number": 2464,
      "phase": 19,
      "module": "portability",
      "feature": "portability.mac_hosts",
      "stage": "negative",
      "title": "M1 ve M5 yeni imaj matrisi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eski K592 hash yeni kerneli doğrulamaz.",
      "action": "os_portability_mac_hosts_negative testini oluştur: “Eski M1 raporu yeni Imagea bağlanır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Eski K592 hash yeni kerneli doğrulamaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_mac_hosts"
      },
      "dependencies": [
        "K2463"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Aynı yeni Image iki Macte",
      "counterexample": "Eski M1 raporu yeni Imagea bağlanır",
      "guestAcceptance": "Yeni hashli altı boot iki hostta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_mac_hosts_positive",
        "negativeName": "os_portability_mac_hosts_negative",
        "expectedMarker": "TURKOS/OS/K2465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski M1 raporu yeni Imagea bağlanır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski M1 raporu yeni Imagea bağlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2464"
    },
    {
      "id": "K2465",
      "number": 2465,
      "phase": 19,
      "module": "portability",
      "feature": "portability.mac_hosts",
      "stage": "integration",
      "title": "M1 ve M5 yeni imaj matrisi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eski K592 hash yeni kerneli doğrulamaz.",
      "action": "Tek ürün Image'ında “Yeni hashli altı boot iki hostta” kabulünü koştur. scripts/os-acceptance/portability.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Eski K592 hash yeni kerneli doğrulamaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_mac_hosts"
      },
      "dependencies": [
        "K2464"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Aynı yeni Image iki Macte",
      "counterexample": "Eski M1 raporu yeni Imagea bağlanır",
      "guestAcceptance": "Yeni hashli altı boot iki hostta",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_mac_hosts_positive",
        "negativeName": "os_portability_mac_hosts_negative",
        "expectedMarker": "TURKOS/OS/K2465: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Yeni hashli altı boot iki hostta; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski M1 raporu yeni Imagea bağlanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2465"
    },
    {
      "id": "K2466",
      "number": 2466,
      "phase": 19,
      "module": "portability",
      "feature": "portability.tool_versions",
      "stage": "contract",
      "title": "QEMU EDK2 sürüm farkı · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Aynı imaj farklı araçlarda ölçülür.",
      "action": "“QEMU EDK2 sürüm farkı” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Aynı imaj farklı araçlarda ölçülür. “İki QEMU iki firmware” kabulü ile “Aynı firmware ikinci diye sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Aynı imaj farklı araçlarda ölçülür",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_tool_versions"
      },
      "dependencies": [
        "K2465"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İki QEMU iki firmware",
      "counterexample": "Aynı firmware ikinci diye sayılır",
      "guestAcceptance": "Araç hashleri ve başarısızlıklar ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_tool_versions_positive",
        "negativeName": "os_portability_tool_versions_negative",
        "expectedMarker": "TURKOS/OS/K2470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Aynı imaj farklı araçlarda ölçülür kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Aynı firmware ikinci diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2466"
    },
    {
      "id": "K2467",
      "number": 2467,
      "phase": 19,
      "module": "portability",
      "feature": "portability.tool_versions",
      "stage": "implementation",
      "title": "QEMU EDK2 sürüm farkı · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Aynı imaj farklı araçlarda ölçülür.",
      "action": "scripts/os-acceptance/portability.mjs hedefinde os_portability_tool_versions yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/bootinfo.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Aynı imaj farklı araçlarda ölçülür",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_tool_versions"
      },
      "dependencies": [
        "K2466"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İki QEMU iki firmware",
      "counterexample": "Aynı firmware ikinci diye sayılır",
      "guestAcceptance": "Araç hashleri ve başarısızlıklar ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_tool_versions_positive",
        "negativeName": "os_portability_tool_versions_negative",
        "expectedMarker": "TURKOS/OS/K2470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İki QEMU iki firmware ile Aynı firmware ikinci diye sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Aynı firmware ikinci diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2467"
    },
    {
      "id": "K2468",
      "number": 2468,
      "phase": 19,
      "module": "portability",
      "feature": "portability.tool_versions",
      "stage": "positive",
      "title": "QEMU EDK2 sürüm farkı · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Aynı imaj farklı araçlarda ölçülür.",
      "action": "os_portability_tool_versions_positive testini oluştur: “İki QEMU iki firmware”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Aynı imaj farklı araçlarda ölçülür",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_tool_versions"
      },
      "dependencies": [
        "K2467"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İki QEMU iki firmware",
      "counterexample": "Aynı firmware ikinci diye sayılır",
      "guestAcceptance": "Araç hashleri ve başarısızlıklar ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_tool_versions_positive",
        "negativeName": "os_portability_tool_versions_negative",
        "expectedMarker": "TURKOS/OS/K2470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İki QEMU iki firmware girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Aynı firmware ikinci diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2468"
    },
    {
      "id": "K2469",
      "number": 2469,
      "phase": 19,
      "module": "portability",
      "feature": "portability.tool_versions",
      "stage": "negative",
      "title": "QEMU EDK2 sürüm farkı · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Aynı imaj farklı araçlarda ölçülür.",
      "action": "os_portability_tool_versions_negative testini oluştur: “Aynı firmware ikinci diye sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Aynı imaj farklı araçlarda ölçülür",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_tool_versions"
      },
      "dependencies": [
        "K2468"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İki QEMU iki firmware",
      "counterexample": "Aynı firmware ikinci diye sayılır",
      "guestAcceptance": "Araç hashleri ve başarısızlıklar ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_tool_versions_positive",
        "negativeName": "os_portability_tool_versions_negative",
        "expectedMarker": "TURKOS/OS/K2470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Aynı firmware ikinci diye sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Aynı firmware ikinci diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2469"
    },
    {
      "id": "K2470",
      "number": 2470,
      "phase": 19,
      "module": "portability",
      "feature": "portability.tool_versions",
      "stage": "integration",
      "title": "QEMU EDK2 sürüm farkı · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Aynı imaj farklı araçlarda ölçülür.",
      "action": "Tek ürün Image'ında “Araç hashleri ve başarısızlıklar ayrı” kabulünü koştur. scripts/os-acceptance/portability.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Aynı imaj farklı araçlarda ölçülür",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_tool_versions"
      },
      "dependencies": [
        "K2469"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İki QEMU iki firmware",
      "counterexample": "Aynı firmware ikinci diye sayılır",
      "guestAcceptance": "Araç hashleri ve başarısızlıklar ayrı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_tool_versions_positive",
        "negativeName": "os_portability_tool_versions_negative",
        "expectedMarker": "TURKOS/OS/K2470: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Araç hashleri ve başarısızlıklar ayrı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Aynı firmware ikinci diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2470"
    },
    {
      "id": "K2471",
      "number": 2471,
      "phase": 19,
      "module": "portability",
      "feature": "portability.linux_kvm",
      "stage": "contract",
      "title": "Gerçek Linux KVM profili · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: TCG veya Macte nested Linux KVM sayılmaz.",
      "action": "“Gerçek Linux KVM profili” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: TCG veya Macte nested Linux KVM sayılmaz. “Fiziksel ARM Linux gerçek KVM” kabulü ile “Mac TCG sonucu K593 diye sunulur” reddini aynı sözleşmeye bağla.",
      "invariant": "TCG veya Macte nested Linux KVM sayılmaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_linux_kvm"
      },
      "dependencies": [
        "K2470"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Fiziksel ARM Linux gerçek KVM",
      "counterexample": "Mac TCG sonucu K593 diye sunulur",
      "guestAcceptance": "Gerçek dış rapor yoksa external kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_linux_kvm_positive",
        "negativeName": "os_portability_linux_kvm_negative",
        "expectedMarker": "TURKOS/OS/K2475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu TCG veya Macte nested Linux KVM sayılmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Mac TCG sonucu K593 diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2471"
    },
    {
      "id": "K2472",
      "number": 2472,
      "phase": 19,
      "module": "portability",
      "feature": "portability.linux_kvm",
      "stage": "implementation",
      "title": "Gerçek Linux KVM profili · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: TCG veya Macte nested Linux KVM sayılmaz.",
      "action": "scripts/os-acceptance/portability.mjs hedefinde os_portability_linux_kvm yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/bootinfo.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "TCG veya Macte nested Linux KVM sayılmaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_linux_kvm"
      },
      "dependencies": [
        "K2471"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Fiziksel ARM Linux gerçek KVM",
      "counterexample": "Mac TCG sonucu K593 diye sunulur",
      "guestAcceptance": "Gerçek dış rapor yoksa external kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_linux_kvm_positive",
        "negativeName": "os_portability_linux_kvm_negative",
        "expectedMarker": "TURKOS/OS/K2475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Fiziksel ARM Linux gerçek KVM ile Mac TCG sonucu K593 diye sunulur ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Mac TCG sonucu K593 diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2472"
    },
    {
      "id": "K2473",
      "number": 2473,
      "phase": 19,
      "module": "portability",
      "feature": "portability.linux_kvm",
      "stage": "positive",
      "title": "Gerçek Linux KVM profili · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: TCG veya Macte nested Linux KVM sayılmaz.",
      "action": "os_portability_linux_kvm_positive testini oluştur: “Fiziksel ARM Linux gerçek KVM”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "TCG veya Macte nested Linux KVM sayılmaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_linux_kvm"
      },
      "dependencies": [
        "K2472"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Fiziksel ARM Linux gerçek KVM",
      "counterexample": "Mac TCG sonucu K593 diye sunulur",
      "guestAcceptance": "Gerçek dış rapor yoksa external kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_linux_kvm_positive",
        "negativeName": "os_portability_linux_kvm_negative",
        "expectedMarker": "TURKOS/OS/K2475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Fiziksel ARM Linux gerçek KVM girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Mac TCG sonucu K593 diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2473"
    },
    {
      "id": "K2474",
      "number": 2474,
      "phase": 19,
      "module": "portability",
      "feature": "portability.linux_kvm",
      "stage": "negative",
      "title": "Gerçek Linux KVM profili · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: TCG veya Macte nested Linux KVM sayılmaz.",
      "action": "os_portability_linux_kvm_negative testini oluştur: “Mac TCG sonucu K593 diye sunulur”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "TCG veya Macte nested Linux KVM sayılmaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_linux_kvm"
      },
      "dependencies": [
        "K2473"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Fiziksel ARM Linux gerçek KVM",
      "counterexample": "Mac TCG sonucu K593 diye sunulur",
      "guestAcceptance": "Gerçek dış rapor yoksa external kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_linux_kvm_positive",
        "negativeName": "os_portability_linux_kvm_negative",
        "expectedMarker": "TURKOS/OS/K2475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Mac TCG sonucu K593 diye sunulur karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Mac TCG sonucu K593 diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2474"
    },
    {
      "id": "K2475",
      "number": 2475,
      "phase": 19,
      "module": "portability",
      "feature": "portability.linux_kvm",
      "stage": "integration",
      "title": "Gerçek Linux KVM profili · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: TCG veya Macte nested Linux KVM sayılmaz.",
      "action": "Tek ürün Image'ında “Gerçek dış rapor yoksa external kalır” kabulünü koştur. scripts/os-acceptance/portability.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "TCG veya Macte nested Linux KVM sayılmaz",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_linux_kvm"
      },
      "dependencies": [
        "K2474"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Fiziksel ARM Linux gerçek KVM",
      "counterexample": "Mac TCG sonucu K593 diye sunulur",
      "guestAcceptance": "Gerçek dış rapor yoksa external kalır",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_linux_kvm_positive",
        "negativeName": "os_portability_linux_kvm_negative",
        "expectedMarker": "TURKOS/OS/K2475: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Gerçek dış rapor yoksa external kalır; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Mac TCG sonucu K593 diye sunulur” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2475"
    },
    {
      "id": "K2476",
      "number": 2476,
      "phase": 19,
      "module": "portability",
      "feature": "portability.devices",
      "stage": "contract",
      "title": "Desteklenen aygıt karar tablosu · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Absent unsupported untested ayrı durumlardır.",
      "action": "“Desteklenen aygıt karar tablosu” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Absent unsupported untested ayrı durumlardır. “MMIO PCI GPU input profilleri” kabulü ile “Test yokken supported etiketi” reddini aynı sözleşmeye bağla.",
      "invariant": "Absent unsupported untested ayrı durumlardır",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_devices"
      },
      "dependencies": [
        "K2475"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "MMIO PCI GPU input profilleri",
      "counterexample": "Test yokken supported etiketi",
      "guestAcceptance": "Her destek hücresi gerçek casee bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_devices_positive",
        "negativeName": "os_portability_devices_negative",
        "expectedMarker": "TURKOS/OS/K2480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Absent unsupported untested ayrı durumlardır kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Test yokken supported etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2476"
    },
    {
      "id": "K2477",
      "number": 2477,
      "phase": 19,
      "module": "portability",
      "feature": "portability.devices",
      "stage": "implementation",
      "title": "Desteklenen aygıt karar tablosu · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Absent unsupported untested ayrı durumlardır.",
      "action": "scripts/os-acceptance/portability.mjs hedefinde os_portability_devices yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/bootinfo.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Absent unsupported untested ayrı durumlardır",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_devices"
      },
      "dependencies": [
        "K2476"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "MMIO PCI GPU input profilleri",
      "counterexample": "Test yokken supported etiketi",
      "guestAcceptance": "Her destek hücresi gerçek casee bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_devices_positive",
        "negativeName": "os_portability_devices_negative",
        "expectedMarker": "TURKOS/OS/K2480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. MMIO PCI GPU input profilleri ile Test yokken supported etiketi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Test yokken supported etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2477"
    },
    {
      "id": "K2478",
      "number": 2478,
      "phase": 19,
      "module": "portability",
      "feature": "portability.devices",
      "stage": "positive",
      "title": "Desteklenen aygıt karar tablosu · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Absent unsupported untested ayrı durumlardır.",
      "action": "os_portability_devices_positive testini oluştur: “MMIO PCI GPU input profilleri”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Absent unsupported untested ayrı durumlardır",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_devices"
      },
      "dependencies": [
        "K2477"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "MMIO PCI GPU input profilleri",
      "counterexample": "Test yokken supported etiketi",
      "guestAcceptance": "Her destek hücresi gerçek casee bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_devices_positive",
        "negativeName": "os_portability_devices_negative",
        "expectedMarker": "TURKOS/OS/K2480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; MMIO PCI GPU input profilleri girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Test yokken supported etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2478"
    },
    {
      "id": "K2479",
      "number": 2479,
      "phase": 19,
      "module": "portability",
      "feature": "portability.devices",
      "stage": "negative",
      "title": "Desteklenen aygıt karar tablosu · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Absent unsupported untested ayrı durumlardır.",
      "action": "os_portability_devices_negative testini oluştur: “Test yokken supported etiketi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Absent unsupported untested ayrı durumlardır",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_devices"
      },
      "dependencies": [
        "K2478"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "MMIO PCI GPU input profilleri",
      "counterexample": "Test yokken supported etiketi",
      "guestAcceptance": "Her destek hücresi gerçek casee bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_devices_positive",
        "negativeName": "os_portability_devices_negative",
        "expectedMarker": "TURKOS/OS/K2480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Test yokken supported etiketi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Test yokken supported etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2479"
    },
    {
      "id": "K2480",
      "number": 2480,
      "phase": 19,
      "module": "portability",
      "feature": "portability.devices",
      "stage": "integration",
      "title": "Desteklenen aygıt karar tablosu · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Absent unsupported untested ayrı durumlardır.",
      "action": "Tek ürün Image'ında “Her destek hücresi gerçek casee bağlı” kabulünü koştur. scripts/os-acceptance/portability.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Absent unsupported untested ayrı durumlardır",
      "source": {
        "target": "scripts/os-acceptance/portability.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/bootinfo.rs",
        "existingReferenceSha256": "d07d4c35e15b856512cddea1c3dc7a612ffca691d076514e41a3b359d88f4608",
        "symbol": "os_portability_devices"
      },
      "dependencies": [
        "K2479"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "MMIO PCI GPU input profilleri",
      "counterexample": "Test yokken supported etiketi",
      "guestAcceptance": "Her destek hücresi gerçek casee bağlı",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/portability.mjs",
        "harness": "scripts/os-acceptance/portability.mjs",
        "positiveName": "os_portability_devices_positive",
        "negativeName": "os_portability_devices_negative",
        "expectedMarker": "TURKOS/OS/K2480: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Her destek hücresi gerçek casee bağlı; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Test yokken supported etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2480"
    },
    {
      "id": "K2481",
      "number": 2481,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.reproduction",
      "stage": "contract",
      "title": "Temiz kaynak yeniden üretim · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Target cache ve eski rapor yeni kanıt olmaz.",
      "action": "“Temiz kaynak yeniden üretim” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Target cache ve eski rapor yeni kanıt olmaz. “İzole source toolchain imaj site” kabulü ile “Eski target kopyalanır” reddini aynı sözleşmeye bağla.",
      "invariant": "Target cache ve eski rapor yeni kanıt olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_reproduction"
      },
      "dependencies": [
        "K2480"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İzole source toolchain imaj site",
      "counterexample": "Eski target kopyalanır",
      "guestAcceptance": "Kaynak ve çıktı hash zinciri ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_reproduction_positive",
        "negativeName": "os_release_acceptance_reproduction_negative",
        "expectedMarker": "TURKOS/OS/K2485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Target cache ve eski rapor yeni kanıt olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Eski target kopyalanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2481"
    },
    {
      "id": "K2482",
      "number": 2482,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.reproduction",
      "stage": "implementation",
      "title": "Temiz kaynak yeniden üretim · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Target cache ve eski rapor yeni kanıt olmaz.",
      "action": "scripts/os-acceptance/release_acceptance.mjs hedefinde os_release_acceptance_reproduction yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/write_release.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Target cache ve eski rapor yeni kanıt olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_reproduction"
      },
      "dependencies": [
        "K2481"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İzole source toolchain imaj site",
      "counterexample": "Eski target kopyalanır",
      "guestAcceptance": "Kaynak ve çıktı hash zinciri ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_reproduction_positive",
        "negativeName": "os_release_acceptance_reproduction_negative",
        "expectedMarker": "TURKOS/OS/K2485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. İzole source toolchain imaj site ile Eski target kopyalanır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Eski target kopyalanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2482"
    },
    {
      "id": "K2483",
      "number": 2483,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.reproduction",
      "stage": "positive",
      "title": "Temiz kaynak yeniden üretim · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Target cache ve eski rapor yeni kanıt olmaz.",
      "action": "os_release_acceptance_reproduction_positive testini oluştur: “İzole source toolchain imaj site”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Target cache ve eski rapor yeni kanıt olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_reproduction"
      },
      "dependencies": [
        "K2482"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İzole source toolchain imaj site",
      "counterexample": "Eski target kopyalanır",
      "guestAcceptance": "Kaynak ve çıktı hash zinciri ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_reproduction_positive",
        "negativeName": "os_release_acceptance_reproduction_negative",
        "expectedMarker": "TURKOS/OS/K2485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; İzole source toolchain imaj site girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Eski target kopyalanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2483"
    },
    {
      "id": "K2484",
      "number": 2484,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.reproduction",
      "stage": "negative",
      "title": "Temiz kaynak yeniden üretim · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Target cache ve eski rapor yeni kanıt olmaz.",
      "action": "os_release_acceptance_reproduction_negative testini oluştur: “Eski target kopyalanır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Target cache ve eski rapor yeni kanıt olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_reproduction"
      },
      "dependencies": [
        "K2483"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İzole source toolchain imaj site",
      "counterexample": "Eski target kopyalanır",
      "guestAcceptance": "Kaynak ve çıktı hash zinciri ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_reproduction_positive",
        "negativeName": "os_release_acceptance_reproduction_negative",
        "expectedMarker": "TURKOS/OS/K2485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Eski target kopyalanır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Eski target kopyalanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2484"
    },
    {
      "id": "K2485",
      "number": 2485,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.reproduction",
      "stage": "integration",
      "title": "Temiz kaynak yeniden üretim · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Target cache ve eski rapor yeni kanıt olmaz.",
      "action": "Tek ürün Image'ında “Kaynak ve çıktı hash zinciri ölçülür” kabulünü koştur. scripts/os-acceptance/release_acceptance.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Target cache ve eski rapor yeni kanıt olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_reproduction"
      },
      "dependencies": [
        "K2484"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "İzole source toolchain imaj site",
      "counterexample": "Eski target kopyalanır",
      "guestAcceptance": "Kaynak ve çıktı hash zinciri ölçülür",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_reproduction_positive",
        "negativeName": "os_release_acceptance_reproduction_negative",
        "expectedMarker": "TURKOS/OS/K2485: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kaynak ve çıktı hash zinciri ölçülür; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Eski target kopyalanır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2485"
    },
    {
      "id": "K2486",
      "number": 2486,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.claim_audit",
      "stage": "contract",
      "title": "Site ve imaj iddia eşliği · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Plan implementation test PASS ayrı tutulur.",
      "action": "“Site ve imaj iddia eşliği” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Plan implementation test PASS ayrı tutulur. “1900 kayıt ile release index” kabulü ile “Rapor olmadan planned PASS yapılır” reddini aynı sözleşmeye bağla.",
      "invariant": "Plan implementation test PASS ayrı tutulur",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_claim_audit"
      },
      "dependencies": [
        "K2485"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "1900 kayıt ile release index",
      "counterexample": "Rapor olmadan planned PASS yapılır",
      "guestAcceptance": "İddia denetimi sahte sayıyı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_claim_audit_positive",
        "negativeName": "os_release_acceptance_claim_audit_negative",
        "expectedMarker": "TURKOS/OS/K2490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Plan implementation test PASS ayrı tutulur kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Rapor olmadan planned PASS yapılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2486"
    },
    {
      "id": "K2487",
      "number": 2487,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.claim_audit",
      "stage": "implementation",
      "title": "Site ve imaj iddia eşliği · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Plan implementation test PASS ayrı tutulur.",
      "action": "scripts/os-acceptance/release_acceptance.mjs hedefinde os_release_acceptance_claim_audit yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/write_release.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Plan implementation test PASS ayrı tutulur",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_claim_audit"
      },
      "dependencies": [
        "K2486"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "1900 kayıt ile release index",
      "counterexample": "Rapor olmadan planned PASS yapılır",
      "guestAcceptance": "İddia denetimi sahte sayıyı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_claim_audit_positive",
        "negativeName": "os_release_acceptance_claim_audit_negative",
        "expectedMarker": "TURKOS/OS/K2490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. 1900 kayıt ile release index ile Rapor olmadan planned PASS yapılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Rapor olmadan planned PASS yapılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2487"
    },
    {
      "id": "K2488",
      "number": 2488,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.claim_audit",
      "stage": "positive",
      "title": "Site ve imaj iddia eşliği · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Plan implementation test PASS ayrı tutulur.",
      "action": "os_release_acceptance_claim_audit_positive testini oluştur: “1900 kayıt ile release index”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Plan implementation test PASS ayrı tutulur",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_claim_audit"
      },
      "dependencies": [
        "K2487"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "1900 kayıt ile release index",
      "counterexample": "Rapor olmadan planned PASS yapılır",
      "guestAcceptance": "İddia denetimi sahte sayıyı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_claim_audit_positive",
        "negativeName": "os_release_acceptance_claim_audit_negative",
        "expectedMarker": "TURKOS/OS/K2490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; 1900 kayıt ile release index girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Rapor olmadan planned PASS yapılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2488"
    },
    {
      "id": "K2489",
      "number": 2489,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.claim_audit",
      "stage": "negative",
      "title": "Site ve imaj iddia eşliği · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Plan implementation test PASS ayrı tutulur.",
      "action": "os_release_acceptance_claim_audit_negative testini oluştur: “Rapor olmadan planned PASS yapılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Plan implementation test PASS ayrı tutulur",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_claim_audit"
      },
      "dependencies": [
        "K2488"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "1900 kayıt ile release index",
      "counterexample": "Rapor olmadan planned PASS yapılır",
      "guestAcceptance": "İddia denetimi sahte sayıyı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_claim_audit_positive",
        "negativeName": "os_release_acceptance_claim_audit_negative",
        "expectedMarker": "TURKOS/OS/K2490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Rapor olmadan planned PASS yapılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Rapor olmadan planned PASS yapılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2489"
    },
    {
      "id": "K2490",
      "number": 2490,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.claim_audit",
      "stage": "integration",
      "title": "Site ve imaj iddia eşliği · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Plan implementation test PASS ayrı tutulur.",
      "action": "Tek ürün Image'ında “İddia denetimi sahte sayıyı reddeder” kabulünü koştur. scripts/os-acceptance/release_acceptance.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Plan implementation test PASS ayrı tutulur",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_claim_audit"
      },
      "dependencies": [
        "K2489"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "1900 kayıt ile release index",
      "counterexample": "Rapor olmadan planned PASS yapılır",
      "guestAcceptance": "İddia denetimi sahte sayıyı reddeder",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_claim_audit_positive",
        "negativeName": "os_release_acceptance_claim_audit_negative",
        "expectedMarker": "TURKOS/OS/K2490: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "İddia denetimi sahte sayıyı reddeder; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Rapor olmadan planned PASS yapılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2490"
    },
    {
      "id": "K2491",
      "number": 2491,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.external_signoff",
      "stage": "contract",
      "title": "İnsan ve bağımsız dış onay · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: AI veya sahip beyanı review yerine geçmez.",
      "action": "“İnsan ve bağımsız dış onay” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: AI veya sahip beyanı review yerine geçmez. “Gerçek güvenlik ve erişim incelemesi” kabulü ile “Self review dış onay diye sayılır” reddini aynı sözleşmeye bağla.",
      "invariant": "AI veya sahip beyanı review yerine geçmez",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_external_signoff"
      },
      "dependencies": [
        "K2490"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Gerçek güvenlik ve erişim incelemesi",
      "counterexample": "Self review dış onay diye sayılır",
      "guestAcceptance": "Açık dış kapılar sürümde listelenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_external_signoff_positive",
        "negativeName": "os_release_acceptance_external_signoff_negative",
        "expectedMarker": "TURKOS/OS/K2495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu AI veya sahip beyanı review yerine geçmez kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“Self review dış onay diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2491"
    },
    {
      "id": "K2492",
      "number": 2492,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.external_signoff",
      "stage": "implementation",
      "title": "İnsan ve bağımsız dış onay · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: AI veya sahip beyanı review yerine geçmez.",
      "action": "scripts/os-acceptance/release_acceptance.mjs hedefinde os_release_acceptance_external_signoff yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/write_release.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "AI veya sahip beyanı review yerine geçmez",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_external_signoff"
      },
      "dependencies": [
        "K2491"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Gerçek güvenlik ve erişim incelemesi",
      "counterexample": "Self review dış onay diye sayılır",
      "guestAcceptance": "Açık dış kapılar sürümde listelenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_external_signoff_positive",
        "negativeName": "os_release_acceptance_external_signoff_negative",
        "expectedMarker": "TURKOS/OS/K2495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Gerçek güvenlik ve erişim incelemesi ile Self review dış onay diye sayılır ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“Self review dış onay diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2492"
    },
    {
      "id": "K2493",
      "number": 2493,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.external_signoff",
      "stage": "positive",
      "title": "İnsan ve bağımsız dış onay · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: AI veya sahip beyanı review yerine geçmez.",
      "action": "os_release_acceptance_external_signoff_positive testini oluştur: “Gerçek güvenlik ve erişim incelemesi”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "AI veya sahip beyanı review yerine geçmez",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_external_signoff"
      },
      "dependencies": [
        "K2492"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Gerçek güvenlik ve erişim incelemesi",
      "counterexample": "Self review dış onay diye sayılır",
      "guestAcceptance": "Açık dış kapılar sürümde listelenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_external_signoff_positive",
        "negativeName": "os_release_acceptance_external_signoff_negative",
        "expectedMarker": "TURKOS/OS/K2495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Gerçek güvenlik ve erişim incelemesi girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“Self review dış onay diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2493"
    },
    {
      "id": "K2494",
      "number": 2494,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.external_signoff",
      "stage": "negative",
      "title": "İnsan ve bağımsız dış onay · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: AI veya sahip beyanı review yerine geçmez.",
      "action": "os_release_acceptance_external_signoff_negative testini oluştur: “Self review dış onay diye sayılır”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "AI veya sahip beyanı review yerine geçmez",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_external_signoff"
      },
      "dependencies": [
        "K2493"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Gerçek güvenlik ve erişim incelemesi",
      "counterexample": "Self review dış onay diye sayılır",
      "guestAcceptance": "Açık dış kapılar sürümde listelenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_external_signoff_positive",
        "negativeName": "os_release_acceptance_external_signoff_negative",
        "expectedMarker": "TURKOS/OS/K2495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Self review dış onay diye sayılır karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“Self review dış onay diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2494"
    },
    {
      "id": "K2495",
      "number": 2495,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.external_signoff",
      "stage": "integration",
      "title": "İnsan ve bağımsız dış onay · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: AI veya sahip beyanı review yerine geçmez.",
      "action": "Tek ürün Image'ında “Açık dış kapılar sürümde listelenir” kabulünü koştur. scripts/os-acceptance/release_acceptance.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "AI veya sahip beyanı review yerine geçmez",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_external_signoff"
      },
      "dependencies": [
        "K2494"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Gerçek güvenlik ve erişim incelemesi",
      "counterexample": "Self review dış onay diye sayılır",
      "guestAcceptance": "Açık dış kapılar sürümde listelenir",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_external_signoff_positive",
        "negativeName": "os_release_acceptance_external_signoff_negative",
        "expectedMarker": "TURKOS/OS/K2495: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Açık dış kapılar sürümde listelenir; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“Self review dış onay diye sayılır” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2495"
    },
    {
      "id": "K2496",
      "number": 2496,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.final_gate",
      "stage": "contract",
      "title": "K2500 açık kapı değerlendirmesi · Sözleşme ve durum modeli",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eksik kabul varken stable release olmaz.",
      "action": "“K2500 açık kapı değerlendirmesi” için girdi/çıktı türlerini, izinli durum geçişlerini, kaynak sahibini ve hata kodlarını tanımla. Değişmez: Eksik kabul varken stable release olmaz. “Bütün sonuçların scoped özeti” kabulü ile “1900 plan tamam diye sürüm etiketi” reddini aynı sözleşmeye bağla.",
      "invariant": "Eksik kabul varken stable release olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_final_gate"
      },
      "dependencies": [
        "K2495"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün sonuçların scoped özeti",
      "counterexample": "1900 plan tamam diye sürüm etiketi",
      "guestAcceptance": "Experimental ve write engeli gerektiğinde korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_final_gate_positive",
        "negativeName": "os_release_acceptance_final_gate_negative",
        "expectedMarker": "TURKOS/OS/K2500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Tür ve geçiş tablosu Eksik kabul varken stable release olmaz kuralını kapsasın; olumlu, ret ve geri alma sonuçları önceden tanımlansın.",
      "failure": "“1900 plan tamam diye sürüm etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2496"
    },
    {
      "id": "K2497",
      "number": 2497,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.final_gate",
      "stage": "implementation",
      "title": "K2500 açık kapı değerlendirmesi · Rust uygulaması ve sahiplik",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eksik kabul varken stable release olmaz.",
      "action": "scripts/os-acceptance/release_acceptance.mjs hedefinde os_release_acceptance_final_gate yolunu uygula veya mevcut Rust modülünü bu sözleşmeye taşı. kernel/src/write_release.rs bir başlangıç referansıdır; mevcut deneyin ürün runtime'ına bağlı olduğunu varsayma. unsafe sınırını ve edinim/yayımlama/iade sırasını kod incelemesinde gerekçelendir.",
      "invariant": "Eksik kabul varken stable release olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_final_gate"
      },
      "dependencies": [
        "K2496"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün sonuçların scoped özeti",
      "counterexample": "1900 plan tamam diye sürüm etiketi",
      "guestAcceptance": "Experimental ve write engeli gerektiğinde korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_final_gate_positive",
        "negativeName": "os_release_acceptance_final_gate_negative",
        "expectedMarker": "TURKOS/OS/K2500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Kod sözleşmeyle eşleşsin; derleme ve sahiplik incelemesi geçsin. Bütün sonuçların scoped özeti ile 1900 plan tamam diye sürüm etiketi ayrımı uygulanmış olsun; henüz konuk PASS iddiası yok.",
      "failure": "“1900 plan tamam diye sürüm etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2497"
    },
    {
      "id": "K2498",
      "number": 2498,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.final_gate",
      "stage": "positive",
      "title": "K2500 açık kapı değerlendirmesi · Olumlu ve sınır birim testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eksik kabul varken stable release olmaz.",
      "action": "os_release_acceptance_final_gate_positive testini oluştur: “Bütün sonuçların scoped özeti”. Girdi sınırlarını, beklenen durumun tamamını ve kaynak sayısını denetle; yalnız fonksiyonun hata vermemesi yeterli değildir. Test filtresinin en az bir gerçek test çalıştırdığını doğrula.",
      "invariant": "Eksik kabul varken stable release olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_final_gate"
      },
      "dependencies": [
        "K2497"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün sonuçların scoped özeti",
      "counterexample": "1900 plan tamam diye sürüm etiketi",
      "guestAcceptance": "Experimental ve write engeli gerektiğinde korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_final_gate_positive",
        "negativeName": "os_release_acceptance_final_gate_negative",
        "expectedMarker": "TURKOS/OS/K2500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "En az bir gerçek test çalışsın; Bütün sonuçların scoped özeti girdisinde tam beklenen durum ve kaynak hesabı doğrulansın.",
      "failure": "“1900 plan tamam diye sürüm etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2498"
    },
    {
      "id": "K2499",
      "number": 2499,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.final_gate",
      "stage": "negative",
      "title": "K2500 açık kapı değerlendirmesi · Hata enjeksiyonu ve geri alma testi",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eksik kabul varken stable release olmaz.",
      "action": "os_release_acceptance_final_gate_negative testini oluştur: “1900 plan tamam diye sürüm etiketi”. Düzeltme olmadan bu karşı-örneğin sözleşmeyi bozduğunu göster; yamadan sonra açık ret ve değişmeyen sahiplik kanıtını arşivle. Başarısızlıkta kısmi edinimleri geri al.",
      "invariant": "Eksik kabul varken stable release olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_final_gate"
      },
      "dependencies": [
        "K2498"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün sonuçların scoped özeti",
      "counterexample": "1900 plan tamam diye sürüm etiketi",
      "guestAcceptance": "Experimental ve write engeli gerektiğinde korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_final_gate_positive",
        "negativeName": "os_release_acceptance_final_gate_negative",
        "expectedMarker": "TURKOS/OS/K2500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "1900 plan tamam diye sürüm etiketi karşı-örneği açık ret üretsin; sağlıklı durum/kanaryalar korunsun; ret sonrası kaynak sızıntısı olmasın.",
      "failure": "“1900 plan tamam diye sürüm etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2499"
    },
    {
      "id": "K2500",
      "number": 2500,
      "phase": 19,
      "module": "release_acceptance",
      "feature": "release_acceptance.final_gate",
      "stage": "integration",
      "title": "K2500 açık kapı değerlendirmesi · Gerçek konukta ürün kabulü",
      "status": "planned",
      "executed": false,
      "evidence": null,
      "reason": "1900 plan kartı ürün kanıtı değildir. Her özelliğin host modeli gerçek konuk kabulü negatif korpusu ve dış sınırı ayrı tutulur. Bu hamlenin koruduğu değişmez: Eksik kabul varken stable release olmaz.",
      "action": "Tek ürün Image'ında “Experimental ve write engeli gerektiğinde korunur” kabulünü koştur. scripts/os-acceptance/release_acceptance.mjs gelecekte yazılacak koşucudur. Kaynak, Image, fixture, seri/QMP kayıtları ve sonuç aynı hash zincirinde olsun; yalnız host modeli ya da ayrı probe Image ürüne entegrasyon sayılmaz.",
      "invariant": "Eksik kabul varken stable release olmaz",
      "source": {
        "target": "scripts/os-acceptance/release_acceptance.mjs",
        "targetStatus": "proposed",
        "existingReference": "kernel/src/write_release.rs",
        "existingReferenceSha256": "b480e2ba7edd76e78d0f0ef2216ae46539414d5c8ac5c37659a13ac635081940",
        "symbol": "os_release_acceptance_final_gate"
      },
      "dependencies": [
        "K2499"
      ],
      "phasePrerequisites": [
        18
      ],
      "positive": "Bütün sonuçların scoped özeti",
      "counterexample": "1900 plan tamam diye sürüm etiketi",
      "guestAcceptance": "Experimental ve write engeli gerektiğinde korunur",
      "testPlan": {
        "state": "not-created-not-run",
        "file": "scripts/os-acceptance/tests/release_acceptance.mjs",
        "harness": "scripts/os-acceptance/release_acceptance.mjs",
        "positiveName": "os_release_acceptance_final_gate_positive",
        "negativeName": "os_release_acceptance_final_gate_negative",
        "expectedMarker": "TURKOS/OS/K2500: PASS",
        "markerObserved": false,
        "profiles": [
          "256/512/1024 MiB",
          "1/2/4 vCPU"
        ],
        "bootPaths": [
          "direct Image",
          "UEFI BootInfo"
        ],
        "requiredEvidence": [
          "source SHA-256",
          "Image SHA-256",
          "fixture SHA-256",
          "nonzero executed test count",
          "positive and negative assertions",
          "real guest serial/QMP",
          "ownership before/after",
          "explicit scope limits"
        ]
      },
      "acceptance": "Experimental ve write engeli gerektiğinde korunur; iki açılış yolu ve belirtilen RAM/CPU profillerinde ölçülsün. Negatif yolu da geçen aynı ürün imajının kanıtı olmadan kabul kapısını kapatma.",
      "failure": "“1900 plan tamam diye sürüm etiketi” girdisini açık hata olarak reddet; kısmi durum yayımlama. Önce/sonra sahiplik, kaynak sayısı ve sağlıklı hizmet ilerlemesini karşılaştır. Sessiz düzeltme ya da kanıt olmadan başarı etiketi verme.",
      "boundary": "Yalnız plan; kod, test koşusu veya konuk PASS kanıtı değildir. Mevcut deneysel sürüm ve production-write derleme engeli değişmez.",
      "href": "/isletim-sistemi-faz-19#k2500"
    }
  ]
}
