İçeriğe geç

Packet, worktree ve merge akışı

Geliştirme · 0.0.0-dev

Yayın

Doküman
0.0.0-dev
Uygulama
0.0.0

Bu sayfa

Uygulama
0.0.0

Her repository yazımı, kabul edilmiş bir roadmap görevine bağlı v2 execution packet’ı ve lease-registry.yaml içindeki aktif lease ile başlar. Packet; exact base commit’i, author ve integrator kimliğini, branch/worktree yolunu, izinli ve yasak path’leri, concurrency key’leri ve bağımsız reviewer rolünü sabitler.

Integrator packet ve lease’i kaydettikten sonra worktree’yi oluşturur:

Terminal window
MUNDERECAT_PACKET_ID=F1-030-W01 make worktree-create

Author yazmaya başlamadan ve evidence üretmeden önce kayıtlı worktree, branch, base ve lease kimliği doğrulanır:

Terminal window
MUNDERECAT_PACKET_ID=F1-030-W01 make worktree-check

Başka bir packet’ın worktree’si kullanılmaz. Lease expiry, branch adı veya holder kimliği uyuşmuyorsa mevcut çıktı stale kabul edilir.

config/governance/path-ownership.yml, kritik repository yüzeylerini bir concurrency key ve reviewer rolüne bağlar. CODEOWNERS yalnız mevcut insan hesabına review yönlendirir; packet quorum’unun yerine geçmez.

Terminal window
MUNDERECAT_PACKET_ID=F1-030-W01 \
MUNDERECAT_BASE_REF=<packet-base-sha> \
MUNDERECAT_WRITE_BASE_REF=<branch-point-sha> \
MUNDERECAT_HEAD_REF=HEAD \
make write-set-check

Kontrol; allowed_paths dışını, forbidden_paths eşleşmesini, eksik protected path key/rolünü ve çözülebilen diğer aktif branch’lerle aynı dosya çakışmasını reddeder. Trusted pull_request_target işi candidate ve aktif branch’leri yalnız Git nesnesi olarak fetch eder; onların scriptlerini çalıştırmaz. agent/<packet-id>-... biçiminde olmayan PR branch’leri işi atlayamaz; job fail-closed davranarak packet’a bağlanmamış PR’ı reddeder.

Author completion/evidence ile işi review’a verir. Reviewer exact review commitini semantik ve güvenlik açısından değerlendirir; kanıtı eksik veya çelişkili değilse test/build komutlarını tekrar etmez. Kabulden sonra yalnız acceptance, packet durumu, generated index ve roadmap işareti değişebilir. Kabul kaydı candidate branch’e eklenmeden önce approving reviewer veya trusted review adapter tarafından make merge-review-attest ile Git common-dir içindeki receipt store’a kaydedilir. Candidate branch bu alana Git içeriğiyle yazamaz; enqueue yalnız candidate acceptance ile trusted receipt birebir eşleşirse geçer.

Review submission commitinden önce packet review durumuna alınır ve integrator make worktree-release ile lease’i kapatır. Reviewer böylece yazma yetkisi kalmamış exact commit’i inceler. changes_requested kararı yeni, monoton artan lease epoch’i olmadan author’a tekrar yazma yetkisi vermez.

Integrator accepted candidate’ı append-only kuyruğa alır. Her enqueue ayrı bir attempt kimliği taşır; iptal edilmiş bir deneme aynı packet’ın sonraki denemesini kilitlemez. merge-gate-check; queue hashini, exact integration/candidate commitlerini, review bağını, closure-only delta’yı, write set’i ve geçici clone’da conflict-free merge’i doğrular. Gate yalnız authorization JSON’u üretir; branch veya worktree’yi değiştirmez ve production/release yetkisi vermez. Reviewed packet’ın author, integrator, scope ve lease alanları closure commitinde değiştirilemez.

Authorization çıktısı merge boyunca geçici bir dosyada korunur:

Terminal window
MUNDERECAT_PACKET_ID=F1-030-W01 make merge-gate-check > /tmp/F1-030-authorization.json
git merge --no-ff agent/F1-030-W01-worktree-merge
MUNDERECAT_PACKET_ID=F1-030-W01 \
MUNDERECAT_RESULT_REF=HEAD \
MUNDERECAT_AUTHORIZATION_PATH=/tmp/F1-030-authorization.json \
make merge-queue-land

Başarılı gate aynı authorization’ı candidate’ın erişemediği receipt store’a da kaydeder. land; authorization hashini, trusted receipt’i, queue eventini, candidate’ı, merge öncesi exact integration head’ini ve geçici clone’da hesaplanan expected tree’yi yeniden bağlar. Yalnız exact fast-forward veya iki parent’ı beklenen sıradaki exact merge commit kabul edilir; araya giren veya yanında ilgisiz değişiklik taşıyan commit reddedilir. Başarılı land gate receipt’ini tüketir; aynı yetki yeniden kullanılamaz.

Hosted branch protection ve public remote henüz etkin değilse repository gate’i bu eksikliği gizlemez. Gerçek merge yalnız integrator tarafından, gate sonucu başarılıyken yapılır; authorization sunulmadan landed olayı kaydedilemez.

Yeni bir specialist veya continuation agent’ına sohbet geçmişi aktarılmaz. Packet’ın exact sözleşmesi, context.md dosyası ve en fazla sekiz required_reads kaynağı deterministik bir capsule’a alınır. Tam dosya için repo relative path; büyük bir Markdown içindeki tam bölüm için path.md#heading-slug kullanılır. Seçilen heading kendi alt heading’leriyle birlikte alınır.

Terminal window
MUNDERECAT_PACKET_ID=F1-032-W01 make context-capsule-check
ruby scripts/governance/context_capsule.rb build F1-032-W01 \
> /tmp/F1-032-W01-capsule.json

Generator yalnız mevcut Git HEAD ile byte düzeyinde aynı regular dosyaları kabul eder. Repo dışı yol, symlink, bulunamayan veya mükerrer heading, sekizden fazla kaynak ve bütçe aşımı output üretilmeden reddedilir. Capsule; commit’i, kaynak ve excerpt SHA-256 değerlerini, exact içeriği ve bütçe hesabını taşır. Budget hesabı ajanın tükettiği canonical JSON’un tamamını, escaping ve provenance metadata’sıyla birlikte ölçer. Saklanan capsule doğrulanırken kaynaklar ve policy ilan edilen Git commitinden yeniden okunur; exact capsule byte’ları yeniden üretilmeden continuation sonucu kabul edilmez.

İki temiz continuation agent’ı ayrı, boş ve read-only çalışma dizinlerinde aynı capsule ile çalıştırılır. Sonuçlar strict schema’da kaydedildikten sonra:

Terminal window
MUNDERECAT_CAPSULE_PATH=/tmp/F1-032-W01-capsule.json \
MUNDERECAT_CONTINUATION_A=/tmp/F1-032-W01-agent-a.json \
MUNDERECAT_CONTINUATION_B=/tmp/F1-032-W01-agent-b.json \
make context-continuation-check

Verifier iki farklı agent kimliği, read_only mod, prior_context: false, aynı capsule hash’i ve aynı continuation kararı beyanı ister. Bunlar untrusted evidence metadata’sıdır. Verifier yalnız semantic_agreement raporlar, execution_attested: false ve grants_authority: false döndürür. Gerçek read-only/ephemeral çalıştırma ancak ayrıca saklanan invocation evidence ile kanıtlanabilir; bu kanıt yoksa mode, session ve freshness yalnız lead-reported metadata olarak yazılır. Bu test semantik context aktarımı içindir; test, lint veya migration komutlarını agent’lara tekrar çalıştırmak için kullanılmaz.

Bootstrap sırasında tek writer kuralı geçerlidir. F1-033, yazma yetkili lane’leri açmadan önce kabul edilmiş altyapı packet’larının exact Git kayıtlarını config/governance/write-agent-readiness.yml içindeki açık listeye göre yeniden doğrular. Seçimi bir ajan yapmaz. Üretilen docs/project/execution/write-agent-readiness.json; kaynak commit’i, genesis kaydını, packet/acceptance/evidence/completion hashlerini, implementation ve review commitlerini ve approving reviewer kimliklerini bağlar.

Sertifika canonical byte biçiminde doğrulanır:

Terminal window
MUNDERECAT_READINESS_PATH=docs/project/execution/write-agent-readiness.json \
make write-agent-readiness-check

Repository’ye eklenmiş sertifika inerttir. F1-033 bağımsız execution-security-reviewer tarafından kabul edilip kontrollü kuyrukla maine indikten sonra aynı approving reviewer temiz main üzerinde receipt üretir:

Terminal window
MUNDERECAT_READINESS_PATH=docs/project/execution/write-agent-readiness.json \
MUNDERECAT_ACTOR_ID=<approving-reviewer-id> \
MUNDERECAT_OCCURRED_AT=<rfc3339-time> \
make write-agent-readiness-attest

Receipt Git common-dir içindeki protected store’da tutulur ve exact certificate hashiyle integration commit’ini bağlar. Attestation ayrıca persistent review receipt’ini, merge-queue event hashlerini, exact candidate acceptance’ını, reviewed packet’tan yalnız review -> closed geçişini, değişmemiş evidence, completion ve released lease snapshot’larını, iki-parentlı result topolojisini ve result tree’den yeniden kurulan authorization digest’ini doğrular. Ancak bu adımdan sonra write-capable agent DB hazırlığına başlanabilir. Her yeni yazma işi yine ayrı packet, worktree, aktif lease, izinli path, bağımsız review ve gerekiyorsa packet’a özel disposable DB şartlarına tabidir. Legacy kaynaklar kalıcı olarak salt okunurdur.

Lead deterministik test/build/hash komutlarını bir kez çalıştırıp evidence’a kaydeder. Independent reviewer aynı komutları mekanik olarak tekrar etmez; bounded exact diff üzerinde yetki modeli, fail-closed davranış ve semantik tutarlılık inceler. Bağımsız yeniden üretim bizzat kabul kriteriyse bu durum packet’ta açıkça yazılır.