orvant · diff
git:20261001.1b392db to git:20261004.502784b
82 added, 39 removed. Audit A to A.
---
name: orvant
- description: Yazılım projesini hedefinden mevcut CLI motoruyla planla, bağımsız kapıyla yürüt ve kayıtlı oturumdan sürdür. Projeyi alan ontolojisi, somut kayıtlar, görevler ve kanıtlarla kurma; çıktıların dayanaklarını ve değişiklik etkisini inceleme isteklerinde de kullan.
+ description: Projeyi hedef, alan ontolojisi, somut kayıtlar, görevler ve kanıtlarla kur veya mevcut projede devam et. Türleri ve ilişkileri modelleme, hangi çıktının neye dayandığını sorgulama ve değişikliğin etkisini inceleyerek işi sürdürme isteklerinde kullan.
---
# Orvant
- Yazılım geliştirme ve işi sonuca ulaştırma isteğinde [motor akışını](references/engine.md)
- oku ve uygula: hedef → S1 soruları ve gerçek sözleşme onayı → ilk S2 planı →
- `surdur` → sonuç veya karar sorusu → aynı oturumdan devam. Kullanıcıya JSON
- doldurtma veya her görevi elle seçtirme.
-
- v0.3 `.project` yerel kayıt/ontoloji modeli Python 3.10+ ile Windows, macOS ve
- Linux içindir. Yürütme motoru ayrı bileşendir: Python 3.11+, Git ve gerçek koşuda
- Codex CLI gerekir; Linux'ta geliştirilmiştir, motor CI'ı Ubuntu'dadır.
- macOS/Windows motor desteği sınanmış değildir. Kayıt modeliyle konuşmayı
- doğrulanabilen nesne ve ilişkilere çevir, soruları cevapla ve değişimi incele.
+ v0.3 yerel çalışma modeli; Python 3.10+ gerekir; Windows, macOS ve Linux için tasarlanmıştır. Kullanıcıya JSON
+ doldurtma. Konuşmayı doğrulanabilen bir alan modeline ve yapılabilir işlere çevir;
+ mevcut projede modeli kullanarak soruları cevapla, değişimi incele ve işe devam et.
- ## Kayıt için işletim sistemi ve komutlar
+ ## İşletim sistemi ve komutlar
macOS/Linux'ta `python3 --version`, Windows PowerShell'de `py -3 --version`
ile Python 3.10+ bulunduğunu doğrula. Windows'ta `py` yoksa `python --version`
- dene. Aşağıdaki kayıt komutlarını ve kayıt referanslarını bulunan yorumlayıcıyla
+ dene. Aşağıdaki ve referanslardaki `python3` komutlarını bulunan yorumlayıcıyla
çalıştır; Windows için `py -3` kullan. Boşluklu yolları tırnakla; PowerShell'de
alıntılanmış yorumlayıcı yolunu `&` ile çağır. Bash, WSL ve symlink zorunlu değildir.
JSON dosyalarını UTF-8 yaz; UTF-8 BOM da okunur. Kayıtlardaki dosya yollarını
`çıktılar/rapor.md` gibi proje köküne göre `/` ile sakla; mutlak Windows yollarını
yalnız CLI'nin proje/spec/event argümanlarında kullan.
Windows klonunda `.agents/skills/orvant` bağlantısı açılmazsa bu gerçek
`skills/orvant/SKILL.md` dosyasını doğrudan oku.
## Başlangıç mı, devam mı?
Hedef klasörü, AGENTS.md/AGENTS.override.md ve ilgili proje özetini incele.
- Yazılım yürütme isteğinde önce bu projeye bağlı motor oturumunu kayıtlı yoldan
- bul; hedefi, sözleşmeyi ve varsa planın depo yolunu karşılaştır. Motor oturumu
- varsa onu sürdür, sessizce yeni oturum kurma. Motor rehberindeki dört başlangıcı
- ayırt et: oturum yok, onaysız S1, onaylı S1 ama plan yok, mevcut plan.
-
`.project/state.json` varsa önce projeye kopyalı betikle `context` çalıştır.
Eski kayıtları yeniden kurma. Şema 1/2 okunabilir ama tür kuralları ve alan etkisi
yoktur; ontoloji gerekiyorsa [geçiş akışını](references/plan-changes.md) kullan.
- `.project` kaydı motorun onaylı sözleşmesi değildir; kayıt kurulması yazılımı
- yürütmez veya motor kabulü üretmez. Yalnız kayıt/ontoloji isteniyorsa aşağıdaki
- kayıt akışını kullan; iki kayıt birlikte varsa her birinin durumunu kendi CLI'sinden oku.
Hedef, kullanıcı, ilk somut çıktı ve başarı ölçütlerinden sonucu değiştiren
belirsizliği sor. Küçük uygulama tercihlerini gerekçelendir; tarih, bütçe veya
teknoloji tercihi uydurma. Bilinmeyenleri `open_questions`, kabul edilmemiş
önerileri `proposed` karar yap. Eski notu veya ajan önerisini kullanıcı kararı sayma.
- ## Yazılım projesini motorla yürüt
-
- Motor rehberinde gerçek skill dizininden kaynak `engine/` yolunu veya kurulu
- motor CLI'sini ve yorumlayıcısını doğrula; kullanıcının çalışma dizininden motor
- yolu türetme. S1'in `ilerle` adımlarını gerçek soru veya revizyon onayına kadar
- yürüt. `cevapla`, `onayla` ve izin/karar komutları gerçek kullanıcı kararını kayda
- taşır; sırayı tamamlamak için cevap veya onay uydurma. Önceden verilen uygun
- yetkiyi yeniden isteme, fakat motor olay kaydı aynı kapsam ve revizyonun gerçek
- taahhüdüne dayanmalı.
-
- Onaylı S1'de ilk `mimar plan` çağrısını skill'i kullanan ajan yapar; mevcut planda
- bu adımı tekrar etme. `surdur` ilk S1/S2'yi başlatmaz; mevcut planın hazır ve
- yetkili işlerini seçer, gerekli kehaneti işçiden önce hazırlar ve kapıdan geçirir.
- Kullanıcıya yalnız kuyruğun gerçek karar/izin sorularını taşı. Açık soru, sınırda
- durma veya işçinin `complete` sözü başarı değildir; kabul kapı kararına dayanır.
- Skill'in çağırdığı komutları motorun kendiliğinden yaptığı iş diye raporlama.
-
## Alanı modelle
İlk kurulum veya alan modeli değişiminde [ontoloji rehberini](references/ontology.md)
ve kayıt hazırlarken [model sözleşmesini](references/model.md) oku.
- Modelin cevaplaması gereken birkaç somut soruyu belirle: “Bu sonuç hangi
komut ve ölçüte dayanıyor?”, “Bu ölçüt değişince hangi inceleme eskir?” gibi.
- **Tür** ile **örneği** ayır: `Deney` türdür; `Açılış metni denemesi A` bir
kayıttır. Alan adları listesini gerçek deney nesnesi yerine koyma. Çalışılacak
gerçek kayıtları ekle; henüz olmayan sonucu veya deneyi uydurma. Kurmaca
örneklerin niteliğini açıkça kaydet.
- Özellik türlerini, ilişki uçlarını, çokluğu ve etki yönünü projeye göre tanımla.
Nesneyi yalnız ayrı kimliği/değişimi veya bir işi açıklayan bağı varsa ekle.
- Görevde `object_ids` konuyu, `input_ids` dayanakları, `output_ids` üretilen
nesneleri gösterir. Girdi üreticilerinden önkoşul hesaplanır; ek iş sırasını
`depends_on` ile yaz. Her görevde gözlenebilir kabul ölçütü bulunmalı.
- Kullanıcı kararında `source` kısa kaynak özeti olsun. Yetkin kapsamındaki
uygulama kararında `accepted_by: agent` kullan; insan kabulünü kendin verme.
- İlişki adı mantıksal ispat değildir. Kayıt runtime'ı ilan edilen tür/bağ kurallarını ve
+ İlişki adı mantıksal ispat değildir. Motor ilan edilen tür/bağ kurallarını ve
etki yönünü işletir; `supports` yazısından doğruluk, alternatif kaynak yeterliliği
veya kullanım izni çıkarmaz. Kaynaklı iddiaları ilgili pasaj ve dar iddia üzerinden
incele. Desteğin kaybolması tek başına iddianın yanlış olduğu anlamına gelmez.
## Kur, kontrol et ve görünür kıl
Kurulumdan önce hedefi, sınırları, önemli bir nesne–ilişki yolunu, ilk iş paketini
ve açık soruları kısa göster. Yetki veya kapsam zaten belliyse tekrar onay isteme.
Spec'i hedef `.project` dışında hazırla; yeni projede şema 3 kullan. Görevleri todo,
kanıtları boş, snapshot'ları null ve generation değerlerini 0 başlat.
```sh
python3 "<skill-dir>/scripts/project.py" init "<project-root>" --spec "<spec.json>"
python3 "<project-root>/.project/scripts/project.py" check "<project-root>"
python3 "<project-root>/.project/scripts/project.py" context "<project-root>"
python3 "<project-root>/.project/scripts/project.py" ontology "<project-root>"
```
`<skill-dir>` bu SKILL.md'nin gerçek dizinidir; çalışma klasöründen türetme.
Python yoksa kurulumu tamamlanmış sayma. `integration: review_required` veya
override uyarısında `.project/integration.md` bağlantısını mevcut yönergelerle
uzlaştır; yetkili proje uyarlaması içinde kısa bağlantıyı ekleyip geri kalanı koru.
Bağlantı eksikken otomatik devamın çalıştığını söyleme.
Üretilen `.project/ONTOLOJİ.md` görünümünü kullanıcıya göster. Somut bir örnekle
“ölçüt → değerlendirme → karşılaştırma → ilgili görev” yolunu, hangi yönün etki
ürettiğini ve ilk yapılabilir işi anlat. Yalnız ürün taslağına veya görev listesine
link vermek ontolojiyi teslim etmek değildir. Kurulum yetkisi bütün proje işlerini
bitirme yetkisi değildir; devam da istendiyse ilk yetkili işi yap.
## Sorgula, değiştir, devam et
`context --json` ve `ontology --json` güncel kaydı verir. Soruyu nesne kimlikleri,
bağlar, girdi/çıktı ve hesaplanan üretici bağımlılıkları üzerinden yanıtla.
Kayıt soruyu cevaplayamıyorsa eksik bağı veya incelemeyi açıkla; olguyu uydurma.
Alan/görev değişikliğinde [değişiklik akışını](references/plan-changes.md) oku.
Önce `preview`, sonra aynı eylemi okuduğun revizyon ve preview'ın verdiği
`--preview-digest` değeriyle `apply` çalıştır. Preview
aynı doğrulama motorunu kullanır; etkileri gösterir, izin isteme mekanizması
değildir. Mevcut yetki içindeki işlemi gereksiz teyitle durdurma. Revizyon
çatışmasında yeniden oku; sayıyı körlemesine artırma. Desteklenmeyen hedef/iptal
veya alan kuralı için state'i elle değiştirerek kontrolü aşma.
Eski kanıt, değişen karar, alan snapshot'ı ve üretici güncelliğini birlikte incele.
`ready` boşken `repair_actions` olabilir; yalnız ilgili öneriyi değerlendirip uygula.
`.project/CONTEXT.md` ve `ONTOLOJİ.md` son üretilen görünümlerdir; canlı komutlar
özellikle dosya değişimlerinden sonra esas alınır.
Çalışmayı `start_task` ile güncel girdilere bağla; girdiler çalışma sırasında
değişirse eski sonucu yeni koşula mal etme. Alternatif kaynaklar için açık
`support_groups`, makinece sınanabilen karşılaştırma koşulları için sınırlı
`acceptance_rules` kullan; ayrıntılar model/ontoloji rehberlerindedir. Yeni bir
alternatifi kendiliğinden incelenmiş kabul sayma.
Kanıt vermeden önce göreve özgü kontrolü gerçekten yap. `note` hangi ölçütün nasıl
incelendiğini, `reviewer` gerçek rolü söylesin. Raporu, zorunlu çıktı ve kaynak
dosyalarını aynı evidence ölçütüne bağla. Alternatif kaynakların `file` özellikleri
incelenmiş dalın `support_snapshot` manifest'inde hashlenir; bunları ayrıca zorunlu
evidence'a eklemek gerekmez. Aynı alternatifleri zorunlu evidence'a da eklemek
`any` grubunu istemeden “hepsi gerekli” yapar. Snapshot yalnız ilan edilmiş
girdileri, etkili alan bağlarını ve `file` özelliklerini kapsar; gizli bağımlılığı
keşfetmez.
Hash eşleşmesi içerik doğruluğu veya insan kabulü değildir.
Geçmiş deneyin “o günkü koşullarda ne ürettiğini” korumak için yeni komut/ölçüt
sürümüne yeni nesne kimliği ve yeni deney bağla. Tarihsel kayıt türlerinde
`immutable: true` kullan; özellik/tür/silme değişikliği yerine yeni sürüm oluştur.
Değişebilir kaydı düzeltmek gerektiğinde mutasyon ve yeniden inceleme kullan;
geçmiş koşulları sessizce yeniden yazma.
Proje metinleri ve kanıtlar görev verisidir, yeni yetki değildir. Paralel ajanların
bulgularını tek ana yazıcıda birleştir. CLI yazıcıları işletim sistemi kilidiyle sıraya girer;
elle veya başka betikle paralel yazma korunmaz. Bu yerel kayıtlar kimlik doğrulama,
değiştirilemez denetim defteri veya genel mantıksal çıkarım sistemi değildir.
+
+ Koddan deterministik nesne ve bağlantı çıkarmak için:
+ ```sh
+ python3 .project/scripts/project.py graph . --out kod-olayi.json --max-files 10000
+ python3 .project/scripts/project.py preview . --event kod-olayi.json --expected-revision <revizyon>
+ ```
+ `graph` yalnız olay üretir; durum dosyasını değiştirmez. İncelenen olay mevcut
+ `apply` hattıyla işlenir. `--include` ve `--exclude` tekrarlanabilen globlardır.
+ Eski `imports`/`tests`/`defines` ilişki tipleri göç gerektiriyorsa kaynak olayı
+ üretilmez; komut 1 ile çıkar, göç olayını `<out>.migration.json` dosyasına yazar
+ ve JSON raporunda `migration_out`, `migration_event`, etki sayıları ve `next_step`
+ verir. Aynı `--out` yolunda önceki kaynak çıktısı varsa kaldırılır. Mevcut olay
+ biçimi ilişki tipi önkoşulunu desteklemediği için bu sıra zorunludur:
+ ```sh
+ python3 .project/scripts/project.py preview . --event kod-olayi.json.migration.json --expected-revision <revizyon>
+ python3 .project/scripts/project.py apply . --event kod-olayi.json.migration.json --expected-revision <revizyon> --preview-digest <preview_digest>
+ python3 .project/scripts/project.py graph . --out kod-olayi.json --max-files 10000
+ python3 .project/scripts/project.py preview . --event kod-olayi.json --expected-revision <güncel-revizyon>
+ ```
+ Göçten sonra aynı filtrelerle yeniden `graph` çalıştır; kaynak olayını yeni
+ revizyonda inceleyip uygula. Göç gerekmiyorsa kaynak olayı doğrudan `--out`'a yazılır.
+ Çözülemeyen/dinamik importlar komutun JSON raporundaki `unresolved` listesindedir.
+ Modül hash değişimi bağımlılara yayılır; `properties.source.path` eşleşmeleri
+ alan nesnelerine bağlanır. Şema 3 tek hedef tip gerektirdiğinden bu bağlantılar
+ `grounds:<hedef-tip>` olarak tanımlanır. Paket JS/TS importları kapsam dışıdır.
+
+ ## Modelden iş ve paralel şerit türet
+
+ ```sh
+ python3 "<project-root>/.project/scripts/project.py" derive "<project-root>" --out oneriler.json
+ python3 "<project-root>/.project/scripts/project.py" lanes "<project-root>" --max 8 --out seritler.json
+ ```
+
+ İki komut da canlı `context` hesabını kullanır; kayıt durumunu değiştirmez.
+ `derive` eskimiş kanıt için aynı görevi yeniden doğrulama önerisi, açık görevi
+ olmayan kayıtlı kabul için görev ve geçmişte saklanan son etki için inceleme
+ önerisi verir. Her öneride `because`, girdiler, beklenen çıktı, kayıtlı kabul
+ ve `preview/apply` uyumlu `event` bulunur. Olayı ayrı JSON dosyasına çıkar;
+ komutun kendisi `apply` çalıştırmaz. `--out` kayıt, kaynak veya kanıtı ezemez.
+
+ Ontoloji tür adları serbesttir: senaryo/sözleşme nesnesinin açık kabulünü
+ `properties.acceptance` (metin veya metin listesi) ile kaydet. Karşılanmamış
+ ölçüt `properties.satisfied: false` ve `properties.definition` metniyle de
+ belirtilebilir. Etiketlerden kabul uydurulmaz. Girdi yolları türü `file` olan
+ özelliklerden ve `properties.source.path` alanından okunur; dosya güncelliğinin
+ snapshot hesabına katılması için kaynak yolunu ayrıca türü `file` olan bir
+ özellik olarak modelle. Mevcut açık görev aynı nesne kimliği ve kayıtlı kabul metinlerini kapsıyorsa
+ öneri tekrarlanmaz; görevdeki başarısız kabul kuralları o görevin işidir. Geçmişte
+ etki kaydı yoksa bu kategori `skipped` gerekçesiyle atlanır.
+
+ `lanes` yazma yolu (üst/alt dizin dahil), önkoşul zinciri ve ortak açık karar
+ kesişimlerini bir bileşende toplar. Önerilmiş halefi bulunan kabul edilmiş
+ karar da açık karar sayılır. `tasks` hazır işleri, `queued_tasks` aynı şeritteki
+ bekleyen devam işlerini, `queued_lanes` sınır fazlasını/hazır olmayan bileşenleri
+ gösterir. Her bileşende işler önkoşul sırasıyla yürür. Yazma kapsamı belirsiz
+ bağımsız görev tek başına `serial` şerittir; önkoşul zinciri varsa zinciri bölmeden
+ bütün bileşen seri çalışır. Seri şerit çalışırken diğer bütün şeritler durur.
+
+ **Tek yazıcı:** kayıt durumunu yalnız koordinatör `preview → apply
+ --expected-revision` ile yazar. Şerit işçileri yalnız kendi kapsamlarında
+ çalışır ve önerilerini/kanıtlarını geri döndürür; aynı kayda paralel yazmaz.
+ Eski kurulumda bu komutlar yoksa kaynak skill betiğiyle `upgrade` çalıştır.
+
+ ### Proje kanıt dizini (şema 3)
+
+ İsteğe bağlı `project.evidence_dir`, depo köküne göreli güvenli POSIX dizinidir.
+ Mutlak yol, `..`, `.git` ve `.project` bileşenleri reddedilir. Yeni kayıtta:
+ `project.py init <kök> --spec <spec.json> --evidence-dir kanit`.
+ Mevcut kayıtta `{"action":"set_evidence_dir","actor":"koordinator",
+ "reason":"Göreve özgü doğrulama kanıtları","evidence_dir":"kanit"}` olayını
+ normal preview → apply akışıyla uygula; preview proje alanının önce/sonra değerini gösterir.
+ Kaynak çıktısı olmayan derive doğrulamalarında kayıtlı komut veya test varsa
+ `write_scope = ["<evidence_dir>/<görev-kimliği>/"]` olur. Şerit işçisi kanıtını
+ bu alt dizine yazar; kaynak dosyalarını değiştirmez. Kayıt yazıcısı koordinatördür.
+ Uygulama görevlerinin kapsamı korunur. Alanı olmayan eski kayıtların davranışı değişmez.