Documentation Index
Fetch the complete documentation index at: https://harness.lokomotif.ai/llms.txt
Use this file to discover all available pages before exploring further.
Tek komutla başla
Temiz bir klon. Yeni bir oturum. Düzeneğin (harness) ilk işi, ajanın “buraya nasıl gireceğim” sorusuyla bağlam yakmasını engellemektir. İyi kurulmuş bir ortam aparatı için ajanın ilk komutu hep aynıdır:make setup. Sonraki üç komut da sabittir: make dev, make test, make check. Bu dört hedef yerinde değilse her oturum bir keşif turuna başlar ve bağlam penceresi feature işine değil arkeolojiye gider. Bu sayfa, dört hedefli minimum Makefile’ı ve bunun yanına oturan idempotent init.sh bootstrap scriptini verir; bu ikisinin birlikte ürettiği şeye sıcak başlangıç (hot-start) denir.
Ne işe yarar
İki dosyanın ikisi de farklı zamanlarda koşar.Makefile— her oturumda, her geliştiricide, her CI koşusunda koşar.make checkdüzeneğin tek komutluk doğrulama sözleşmesidir: lint + tip denetimi + test sırayla koşar, hepsi geçerse iş “doğrulandı” sayılır. CI’nin koştuğu komutla lokalde koştuğun komut aynıdır; sapma yoktur.init.sh— proje doğduğunda tek bir kez koşar. Anthropic’in Effective harnesses for long-running agents yazısında tanımlanan üçlüyü üretir:init.sh+claude-progress.txt+ ilk git commit. Bizim Türkçe karşılıklarımızda bu üçlüinit.sh+progress.md/decisions.md+init: bootstrap completecommit’idir. Idempotenttir: ikinci kez koşulursa hiçbir şey kırmaz; ilk kez koşulursa repo “ajanın çalışabileceği” duruma gelir.
Makefile ile init.sh bir kuralı paylaşır: ajanın ne yapacağına dair tüm cevap dosyada olmalı, sohbette değil. Düzeneği /dersler/02-duzenek-gercekte-nedir “kendini açıklayan ortam” diye tanımlar; bu sayfa o aparatın somut çıktısıdır.
Şablon — Makefile
AşağıdakiMakefile olduğu gibi kopyalanır ve repo köküne Makefile adıyla konur. Girintiler sekme karakteridir (make boşluk kabul etmez).
| Hedef | Tek satır görevi |
|---|---|
setup | Bağımlılıkları kur. Temiz bir klonda hatasız tamamlanmalı. |
dev | Yerel servisi başlat. Bir tek komut, sıfır manuel parametre. |
test | Tam test suitini koş. Smoke yetmez; suit tamamı. |
check | CI’nin tek komutu. lint && type && test. Bu komut yeşilse iş teslim edilebilir. |
help hedefi öz-belgelidir: make yazınca her hedefin yanındaki ## ... yorumu ekrana basılır. Yeni gelen bir ajan (veya geliştirici) önce make yazar, sözleşmeyi okur.
Şablon — init.sh
Aşağıdakiinit.sh repo köküne konur ve chmod +x init.sh ile çalıştırılabilir yapılır. Tek kez koşar; ikinci kez koşulursa hiçbir adımı tekrar etmez (idempotent).
make setupbaşarıyla tamamlandı.make testen az bir smoke testi geçirdi.progress.md,decisions.md,features.jsoniskelet halinde mevcut veinit: bootstrap completecommit’i atıldı.
/dersler/06-baslangic-neden-kendi-fazina-sahip-olmali.
Konvansiyon
- Konum —
Makefileveinit.shher ikisi de repo kökünde. Alt dizinde değil. - İsim —
Makefilebüyük M, uzantısız.init.shküçük harf,.shuzantısı, çalıştırılabilir bit. setup— yeni bir klonda tek seferde tamamlanır; manuel müdahale veya tarayıcı adımı içermez.dev— tek komutla servisi başlatır; ortam değişkeni gerektiriyorsa.env.examplerepoda olur.test— tam test suitini koşar; alt küme değil.check— CI ile birebir aynı komutu koşar.make checklokalde yeşilse PR yeşil olacaktır.init.sh—set -euo pipefailzorunlu. Her adım idempotent.
Özelleştirme
Dil sözdizimleri değişir, sözleşme değişmez. Aşağıdaki üç varyant aynı dört hedefi farklı toolchain üstünde verir.Makefile üst düzey hedefleri tutar, alt paketlerin kendi Makefile’larına delege eder.
make check koşamıyorsa CI da koşamaz. Her paketin kendi dört hedefi tam olur.
Otomasyona bağlama
make check ve init.sh üretildikten sonra otomasyon ucuza biner.
GitHub Actions — tek satırlık CI:
check hedefini commit anına asma:
pre-commit her commit’te bütün suit’i koşmasın diye stages: [pre-push] kullanıyoruz; hızlı geri bildirim için lint ve format ayrı hook’lara çıkarılabilir, ama “tam doğrulama” hep make check’in arkasında durur.
İlgili dersler
/dersler/02-duzenek-gercekte-nedir— ortam aparatının düzenek içindeki yeri ve beş aparatlı çerçeve./dersler/06-baslangic-neden-kendi-fazina-sahip-olmali— başlangıç fazının ayrı bir mühendislik fazı olduğu tezi ve dört koşullu Bootstrap Sözleşmesi./kutuphane/agents-md—make checksözleşmesini ajanın okuyacağı router’da nasıl yazarsın./kutuphane/progress-decisions—init.sh’in iskeletini attığı durum dosyalarının dolu hali./kutuphane/features-json— başlangıçta üretilen sıralı feature listesinin şeması.