English · Türkçe

Forgelore

Ajanın bu hatayı geçen hafta çözmüştü. Hatırlamıyor. Forgelore hatırlıyor.

Forgelore, çalışma zamanı bağımlılığı olmayan tek bir statik Go ikilisi. Başarısız bir komutun hatasının parmak izini çıkarır; aynı hata geri geldiğinde — başka bir dosyada, başka bir komutla, bir iş arkadaşının makinesinde — onu geçen sefer çözen tek satırı ajanının önüne koyar.

Söyleyecek bir şeyi yoksa hiçbir şey söylemez ve hiçbir şeye mal olmaz.

Nasıl görünüyor

Forgelore: bir hata, bir kez kaydedilir, yeniden bulunur Aynı dökümün düz metni site/demo.txt içinde. $ go build ./... # example.com/app/cmd/app cmd/app/main.go:4:2: undefined: greet $ forgelore recall --command "go build ./..." --error-file err.txt 1 error(s), 0 with something recorded cd023fb609411574 undefined: greet nothing recorded $ forgelore record --type fix \ --title "greet lives in internal/greeter; import it" \ --command "go build ./..." --error-file err.txt 01M45XT2HS8G3PXDBRTWWV3449 .forgelore/records/01M45XT2HS8G3PXDBRTWWV3449.md fingerprint cd023fb609411574 $ go vet ./... # example.com/app/internal/svc vet: internal/svc/svc.go:4:2: undefined: greet $ forgelore recall --command "go vet ./..." --error-file err2.txt 1 error(s), 1 with something recorded cd023fb609411574 undefined: greet fix 01M45XT2HS8G3PXDBRTWWV3449 greet lives in internal/greeter; import it
Gerçek v0.1.1 çıktısı. Parmak izi iki yarıda da aynı, çünkü dosya, satır ve alt komut parmak izinin parçası değil — hata öyle. Aynı dökümün düz metni: demo.txt.

Kurulum

curl -fsSL https://raw.githubusercontent.com/forgeprint/forgelore/main/scripts/install.sh | bash

Ya da npm senin alışkanlığınsa:

npm install -g forgelore

İkisi de aynı ikiliyi veriyor. Sudo yok, ev dizininin dışına çıkan bir şey yok, yanına kurulacak bir çalışma zamanı yok.

Beş dakikada kullanım

1. Depoyu oluştur

cd projen
forgelore init --with-git-hook

Bu, commit'lenmesi amaçlanan .forgelore/records/ dizinini ve indeksi, ölçüm defterini ve kişisel kapsamını git'in dışında tutan bir .gitignore yazar. Git hook'u, paylaşılan bir kayda sır taşıyacak bir commit'i reddeder.

2. İlk çözümü kaydet

Bir komut patlayıp sebebini çözdüğünde, cevabı sakla:

go build ./... 2> err.txt
forgelore record --type fix \
    --title "greet internal/greeter içinde; onu import et" \
    --command "go build ./..." --error-file err.txt

Başlık cevabı söyler, soruyu değil. "greet internal/greeter içinde; onu import et", asla "greet tanımsız" değil.

3. Kendiliğinden cevap versin

Ajanını bir kez bağladığında recall'u elle çalıştırmayı bırakırsın — ipucu, hata geldiği anda gelir. Her ajan için bağlama ajanlar sayfasında.

4. Paylaş

forgelore promote <kayıt id>      # kendi kapsamından ekibin kapsamına taşır
git add .forgelore/records && git commit

İş arkadaşların bir sonraki pull'da alır. Sunucu yok.

İşe yarayıp yaramadığını ölçüyor

Forgelore oturumları bir deney ve bir kontrol koluna ayırıyor — kontrol koluna hiç enjeksiyon yapılmıyor — ve ikisini karşılaştırıyor.

forgelore report --days 7

Rapor, bir farkın anlamlı olmadığı durumu açıkça söylüyor; küçük örneklemde genellikle öyle. Bu, hayal kırıklığı değil amaçlanan cevap: ölçmediği bir tasarrufu iddia eden bir araç, henüz söyleyemediğini kabul edenden kötüdür.

Hangi ajanları destekliyor

AjanÇalışan ajana karşı denetlenen
Claude Code 2.1.290hook'lar, her iki MCP protokol dönemi, kullanım okuyucuA
Copilot CLI 1.0.91yalnızca hook'larB
Gemini CLI 0.62.0yalnızca hook'larB
Cursor 2026.10.01yalnızca hook'larB
Codex CLIhenüz hiçbiridoğrulanmamış

Kademe, çalışan bir ajana karşı denetleneni anlatır; dokümanının vaat ettiğini değil. Bu projedeki her eşleme resmî dokümanın okunmasıyla başladı ve her biri, Forgelore'u sessiz bırakacak bir yerinden yanlış çıktı — bu yüzden kimsenin çalıştırmadığı bir yetenek "ölçülmedi" diye yazılır.

Kabuk komutu çalıştırabilen her ajan bugün hiçbir bağlama olmadan çalışıyor: forgelore init, AGENTS.md'ye eklenecek satırı yazdırıyor.

Yapmayacağı şeyler

Kurduğun şeyi doğrula

gh attestation verify forgelore_linux_amd64 -R forgeprint/forgelore
npm audit signatures

Release varlıkları etiketle tetiklenen bir iş akışında derleniyor ve orada attest ediliyor; npm paketleri de aynı iş akışından OIDC ile, provenance ile yayımlanıyor. Doğrulama başarılı olduğunda hiçbir şey yazmıyor — cevap çıkış kodunda.