SSD Nodes Learn 🎉 VPS $5.50/aydan başlayan
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-14

Kodlama aracıları için kod tabanı haritası oluşturma

Graft ile kod deponuzu tree-sitter kullanarak kalıcı bir haritaya dönüştürün. Kodlama aracınızın her oturumda yapıyı yeniden keşfetmesini engelleyerek MCP üzerinden veriye erişin.

Kodlama aracıları için kod tabanı haritası nedir

Kodlama aracıları için kod tabanı haritası, aracının her yeni oturumda sıfırdan arama yapmak yerine bilgiye erişmek için kullandığı, deponuzun kalıcı bir dizinidir. Graft, bu fikrin bir uygulamasıdır. Kodunuzu tree-sitter ile ayrıştırır, bağlantılı markdown düğümlerinden oluşan bir klasör ve sembol bazlı bir bağlantı grafiği oluşturur, ardından bu veriyi MCP (kodlama aracılarının dış araçları çağırmak için kullandığı standart arayüz olan model context protocol) üzerinden erişilebilir kılar.

Graft bir proxy veya ağ geçidi değildir. Aracınız ile model API'si arasında hiçbir şey bulunmaz. Harita, disk üzerinde aracının okuduğu bir klasördür. Bu ayrım, hangi sorunu çözdüğünüzü belirler: kendi kendine barındırılan bir token ağ geçidi, gönderdiğiniz istekleri ölçümler ve yönlendirir; bir harita ise göndermeniz gereken toplam istek sayısını değiştirir.

Bu teknik, bu araçtan daha eskidir ve varlığını bu araçtan sonra da sürdürecektir. Önce tekniği, ardından mekaniği öğrenin.

Kodlama ajanları neden yapıyı yeniden keşfederek bağlam tüketir

Bir ajanın, daha önce elli kez gördüğü bir depoda çalışmaya başlamasını izleyin. Dizinleri listeler. Bir sembol için grep komutunu çalıştırır. Fonksiyonun nerede tanımlandığını bulmak için üç dosya açar, ardından kimin çağırdığını bulmak için dördüncü bir dosya açar. Bunların hiçbiri asıl görev değildir. Bu bir oryantasyon sürecidir ve her oturumda girdi token'ları ile ödenir.

Nedeni basittir. Bir modelin oturumlar arasında hafızası yoktur. Ajanın dizin yapınız hakkında öğrendiği her şey, oturum sona erdiğinde atılan bir bağlam penceresinde yaşar. Bu nedenle aynı keşif süreci, tam maliyetle sıfırdan tekrar çalışır. Büyük bir depoda oryantasyon aşaması, düzenleme işleminden daha maliyetlidir: kodu bulmak için on araç çağrısı, değiştirmek için bir çağrı. Oryantasyon bu faturanın sadece yarısıdır, düzenleme ise diğer yarısıdır; bu yüzden ajanı çalışan en küçük değişikliğe sadık tutan bir beceriyi, ikisi arasında seçim yapmak yerine bir harita ile eşleştirmek değerlidir.

Bir harita, keşif sürecini modelin üzerinden alıp diske taşıyarak bu döngüyü kırar. Bir ayrıştırıcı (parser) depoyu bir kez tarar, hangi sembolün nerede tanımlandığını ve hangisinin hangisini çağırdığını kaydeder, ardından kod değiştikçe bu kaydı güncel tutar. Ajan tek bir soru sorar ve dosya ile satır numarası eklenmiş bir yanıt alır. Tekrarlanan keşif, ucuz bir arama işlemine dönüşür.

Bunun daha zayıf bir versiyonunu zaten kullanıyorsunuz. Kurallarınızı belirten bir AGENTS.md dosyası, ajanın kurallarınızı her seferinde yeniden türetmesini engeller. Oluşturulmuş bir harita ise yapınızı yeniden türetmesini engeller. Fark, bunu kimin yazdığıdır. Talimat dosyasını siz elle yazarsınız, bu yüzden küçük kalır. Haritayı bir ayrıştırıcı oluşturur, bu yüzden on bin dosyayı kapsayabilir. Bütçenin bir oturum içinde gerçekte nereye harcandığı konusunda, Claude Code'un bağlam penceresini nasıl harcadığı muhasebeyi açıklar.

What Graft actually builds

Two artefacts, both under one graft/ folder at the repository root.

The first is a node graph written as linked markdown, one file per node. Each node holds a plain-English summary, a "crux" of the important logic lines lifted out of the source, the exact source files with a content hash, typed wikilinks to other nodes (depends_on, part_of, uses, implements), and a notes section that survives regeneration so you can record context a parser cannot infer.

The second is graft/.graph/wiring.json, the per-symbol structural graph that tree-sitter extracts: definitions, references and the call edges between them.

The split matters because only one half needs a model. graft build is pure tree-sitter and never calls an LLM (large language model), so it is deterministic and costs nothing. graft build --deep adds the written summaries and the per-symbol cruxes, and those are model calls you pay for.

Language support is tiered, and the tier tells you how far to trust a call graph. TypeScript, JavaScript, Python, Go and Java get scope-aware cross-file resolution. Rust, C, C++, C#, Ruby, PHP, Kotlin, Scala, Swift, Elixir, Solidity, OCaml, Zig and Dart get symbols plus generic call edges, which means an edge can be a name match rather than a resolved reference. Compiler-grade edges are opt-in with --lsp and a language server such as rust-analyzer or gopls.

Graft kurulumu ve sürüm sabitleme

Graft, Node.js 20 veya daha yeni bir sürüm gerektirir ve MIT lisansına sahiptir. Ağustos 2026 itibarıyla güncel sürüm 0.10.1'dir; ilk yayınlanan sürüm olan 0.1.0 ise Temmuz 2026 tarihlidir. Yazılımın henüz yeni olduğunu göz önünde bulundurun.

npm install -g @nanonets/graft@0.10.1
npm ls -g @nanonets/graft

npm ls -g komutu @nanonets/graft@0.10.1 çıktısını vermelidir. Bu sürümü özellikle sabitleyin. Yalın bir npm install -g @nanonets/graft komutu, çalıştırdığınız anda latest etiketini çözümler. Ayda birkaç küçük sürüm yayınlayan bir projede bu durum, Salı günü kullandığınız aracın, meslektaşınızın Pazartesi günü kurduğundan farklı olmasına neden olur. Sabitlenmiş bir sürüm, CLI bayraklarını ve grafik formatını herkes için aynı tutar; böylece güncellemeyi siz karar verdiğinizde yaparsınız.

Ardından aracı sahip olduğunuz bir depoya bağlayın:

cd /path/to/your/repo
graft init --dry-run
graft init

graft init komutu, hangi kodlama aracınızı bağlamak istediğinizi sorar ve ardından grafiği oluşturur. Önce --dry-run komutunu çalıştırın ve dokunmayı planladığı dosyaların listesini okuyun; çünkü bu dosyaların bazıları depo dışında yer alır. graft init komutu idempotenttir ve mevcut yapılandırmaların üzerine yazmaz; bu nedenle ikinci kez çalıştırmak güvenlidir.

Ağustos 2026 itibarıyla bağlantı desteği Claude Code, Cursor, Codex, GitHub Copilot, Google Gemini, Kiro, Windsurf ve AdaL için mevcuttur. Claude Code en derin entegrasyona sahiptir: bir MCP sunucusu girişi, grafik boyutunu ve güncelliğini gösteren bir durum satırı, grafiği yeniden oluşturan düzenleme sonrası kancaları ve .claude/ altında bir yetenek dosyası. Diğerleri ise araca araçların var olduğunu bildiren bir talimat veya kural dosyası alır. Bu nedenle "Destekleniyor" ifadesi, Graft'ın bağlantıyı yazdığı anlamına gelir; dolayısıyla kendi kural dosyasını atlayan bir aracı, haritayı da atlayacaktır. Ajanların sizin yazdığınız talimatları görmezden gelmesinin olağan nedeni budur ve bu durum burada da diğer her yerde olduğu gibi geçerlidir.

Deponuza neler eklenir ve neler git dışında tutulur

graft init işleminden sonra şunları bekleyin:

  • graft/: markdown düğüm grafiği ve graft/.graph/wiring.json. Sizin için .gitignore dosyasına eklendi.
  • .mcp.json: Claude Code'un başlatabilmesi için graft MCP sunucusunu kaydeder.
  • .claude/settings.json: durum satırını ve düzenleme sonrası kancalarını (hooks) ekleyerek yerinde birleştirildi.
  • AGENTS.md, GEMINI.md, .github/copilot-instructions.md, .cursor/rules/graft.mdc, .kiro/steering/graft.md, .windsurf/rules/graft.md ve .adal/skills/graft/SKILL.md: seçtiğiniz aracılarla eşleşen dosyalara eklenen, işaretleyicilerle sınırlandırılmış bölümler.
  • ~/.codex/config.toml, ~/.codex/hooks.json ve ~/.codex/hooks/graft/graft-hooks.cjs: makine genelinde, yalnızca Codex seçtiğinizde yazılır. graft init --no-global bunları atlar, graft init --no-hooks ise kanca ara katmanını (shim) kendi başına atlar.

Grafik, node_modules gibi bir önbellektir. Onu commit etmeyin. Koddan saniyeler içinde yeniden oluşturulabilir, neredeyse her düzenlemede değişir ve commit edilmesi, tek satırlık bir düzeltmeyi hiçbir gözden geçirenin okumayacağı birkaç yüz dosyalık bir farka dönüştürür. Bunun yerine, AGENTS.md ve .mcp.json dahil olmak üzere bağlantı yapılandırmasını commit edin. Bir ekip arkadaşınız depoyu klonladığında, graft build komutunu çalıştırır ve kendi yerel grafiğini oluşturur.

İlk commit işleminizden önce yoksayma kuralının yerleştiğini doğrulayın:

grep -n graft .gitignore
git status --short

grep komutu graft/ içeren bir satır yazdırmalı ve git status --short komutu graft/ altında hiçbir şey listelememelidir. graft/ altındaki dosyaların bu çıktıda görünmesi, yoksayma girdisinin eksik olduğu veya başka bir yerde geçersiz kılındığı anlamına gelir. Commit etmeden önce bunu düzeltin; çünkü git bir dosyayı bir kez eklediğinizde onu izlemeye devam eder ve daha sonra yapılacak bir .gitignore düzenlemesi onu izleme dışı bırakmaz.

MCP sunucusunu elle kaydetmeyi veya yüklediğiniz sürümle sabitlemeyi tercih ederseniz, girdi oldukça kısadır:

{
  "mcpServers": {
    "graft": {
      "command": "npx",
      "args": ["-y", "@nanonets/graft@0.10.1", "mcp"]
    }
  }
}

Ajanınızın grep yerine kullandığı erişim araçları

Graft, MCP üzerinden altı araç sunar. graft_find_code, bir görev tanımı için dosya ve satır bilgisiyle birlikte sıralanmış düğümleri döndürür. graft_file_api, bir dosyadaki tüm imzaları gövde kısımları olmadan döndürür. graft_trace_calls, çağıranları veya çağrılanları birkaç seviye derine kadar tarar. graft_find_all, sembollere göre gruplandırılmış regex eşleşmelerini döndürür. graft_repo_map, yabancı bir depoya ilk bakışı sağlar. graft_check_freshness, grafiğin kodla hala uyumlu olup olmadığını raporlar.

Her birinin bir CLI eşi bulunur; ajanınıza gerçekte neyin iletildiğini bu şekilde kontrol edebilirsiniz:

graft map .
graft ask "where do we validate the refresh token"
graft skeleton src/auth/session.ts
graft callers validateRefreshToken
graft callers validateRefreshToken --direction out
graft grep "refresh_token" --json

graft ask, dosya içerikleri yerine file:line referanslarıyla sıralanmış düğümleri yazdırmalıdır. Tüm mekanizma budur: ajan, doğru dosyayı bulmak için on tanesini okumak yerine bir işaretçi alır ve tek bir dosya açar. graft viz, grafiği kendiniz incelemek isterseniz localhost üzerinde etkileşimli bir görüntüleyici açar. Eğer graft ask, otuz saniyede cevaplayabileceğiniz bir soru için yararlı bir sonuç döndürmüyorsa, grafik güncelliğini yitirmiştir veya kullandığınız dil geniş kapsamlı katmanda yer alıyordur; bu durumda harita ajanınıza da yardımcı olmayacaktır.

Gözden kaçırılması kolay bir maliyet vardır. Altı araç tanımı, tüm oturum boyunca her isteğin sistem istemine (system prompt) enjekte edilir. Ajan haritayı kullansa da kullanmasa da bu maliyeti ödersiniz. Bağlama sığacak kadar küçük bir depoda, bu sabit ücret, sağladığı keşif avantajından daha büyük olabilir.

Kod değiştiğinde grafiğe ne olur

Yapısal yenileme ucuz ve otomatiktir. Graft, git yerine çalışma ağacınızı okur; bu nedenle henüz commit etmediğiniz bir düzenleme ile stage ettiğiniz bir düzenleme, Graft için aynı derecede görünürdür. Bir sorgu, yalnızca stat değeri değişen dosyaları yeniden ayrıştırır; proje belgelerinde bu işlemin yaklaşık 3 ms ek yük getirdiği belirtilir. Tur sonu yeniden oluşturma işlemi ise yalnızca kodun taşındığı dosyalara dokunur. Yeniden ayrıştırma yapmadan diskteki grafikten yanıt almak için GRAFT_NO_REFRESH=1 ayarını yapın veya --no-refresh bayrağını kullanın. Graft'ın kendisini yükselttikten sonra ihtiyaç duyacağınız her şeyin soğuk yeniden ayrıştırılmasını zorlamak için --no-reuse bayrağını kullanın.

Model tarafından yazılan kısım farklı davranır ve sessizce hatalı sonuç verebilecek kısım burasıdır. Özetler ve temel noktalar önbelleğe alınır. Her düğüm, kaynaklarının bir içerik özetini (hash) kaydeder; bu nedenle bir kaynak dosya değiştiğinde düğüm güncel olarak sunulmak yerine eski (stale) olarak işaretlenir. Bu işaret yalnızca bir şey onun üzerinde işlem yaparsa işe yarar. Model token'larını tekrar harcayan graft build --deep komutu ile yenileme yapın.

Eskimişliği görünür kılın:

graft check .
echo $?

0 çıkış durumu, grafiğin kodla eşleştiği anlamına gelir. 1 çıkış durumu ise sapma olduğunu gösterir. Bunu bir pre-push kancasında veya CI içindeki branch üzerinde çalıştırın; böylece altı aylık bir harita, Mart ayında yeniden yazılmış kod hakkında güvenle yanıt veremez.

Yayınlanmış kıyaslama verilerini dikkatle inceleyin

Graft'in temel iddiası, "doğruluk kaybı olmadan veya daha iyi bir doğrulukla, 4 kata kadar daha ucuz ve 3 kata kadar daha hızlı" olduğudur. Bu veriler, projenin kendi README dosyasında yayınladığı kıyaslamalardan gelmektedir. Projenin tam olarak raporladığı iki çalışma aşağıdadır.

ChartGraft's own published benchmark results, versus a no-map baseline, as of August 2026
The data behind this chart
[
  {
    "label": "Controlled sweep",
    "run_count": 162,
    "token_saving_pct": 42,
    "tool_call_saving_pct": 46,
    "correctness_pct": 93,
    "baseline_correctness_pct": 93
  },
  {
    "label": "SWE-bench Verified",
    "run_count": 50,
    "token_saving_pct": 23,
    "tool_call_saving_pct": 25,
    "correctness_pct": 66,
    "baseline_correctness_pct": 54
  }
]

Kontrollü tarama, biri Graft'in kendisi olmak üzere iki depo üzerinde, görev başına üç deneme ile gerçekleştirilen 162 çalışmadan oluşur. Raporlanan verilere göre 42% daha az token ve 46% daha az araç çağrısı gerçekleşmiştir. SWE-bench Verified çalışması, her iki tarafta aynı model kullanılarak 50 örnek üzerinde yapılmış ve daha düşük bir tasarruf raporlanmıştır: tokenların 23% kadarı ve araç çağrılarının 25% kadarı tasarruf edilmiştir. Üçüncü bir çalışmada, beş adet birleştirilmiş PocketBase çekme isteği (pull request), temel alınan 13.91 ABD doları maliyete karşılık 11.02 ABD doları maliyetle yeniden üretilmiştir.

Bunların tamamını bir satıcı kıyaslaması olarak değerlendirin. Size ne anlatabileceğini sınırlayan iki husus vardır. Kontrollü tarama, yazarların üzerinde optimizasyon yaptığı Graft'in kendi deposunu içermektedir. SWE-bench Verified, tanınmış açık kaynaklı Python projelerinden gelen sorunların bulunduğu halka açık bir veri kümesidir ve halka açık veri kümeleri, amaçlansın ya da amaçlanmasın, araçların optimize edildiği yerlerdir. Bunların hiçbiri, kendine has isimlendirme alışkanlıkları ve ölü kodları olan özel monorepo yapınız hakkında bir beyan değildir.

Doğruluk konusu ikinci bir incelemeyi hak ediyor. Kontrollü taramada bu oran değişmemiştir: Graft ile 93%, Graft olmadan 93%. 66% seviyesine olan yükseliş, 54% değerinden yalnızca SWE-bench Verified üzerinde gerçekleşmiştir. Token maliyetinizi düşüren ve kaliteyi sabit tutan bir araç hala iyi bir kazançtır. Sadece SWE-bench doğruluk sonucunu, taramanın token sonucuyla birleştirmeyin ve her ikisini tek bir iddia olarak sunmayın.

Kendi token farkınızı ölçün ve sonuçlara inanmadan önce doğrulayın

Önemli olan tek sayı, kendi deponuzdan elde ettiğiniz sayıdır. Bu yöntem bir öğleden sonranızı alır.

Tam olarak tekrarlayabileceğiniz bir görev seçin. Bir soru sormak, bir düzenleme yapmaktan daha iyidir; çünkü düzenleme depoyu değiştirir ve ikinci çalıştırma artık aynı deney olmaz. "Giriş rotasındaki hız sınırını hangi modül uyguluyor" sorusu, doğru biçimdedir.

Telemetriyi açın ve kendi terminalinize yönlendirin:

export CLAUDE_CODE_ENABLE_TELEMETRY=1
export OTEL_METRICS_EXPORTER=console
claude

Konsol dışa aktarıcı (exporter), metrik kayıtlarını toplandıkları anda yazdırır. İhtiyacınız olan metrik claude_code.token.usage'dur; bu metrik input, output, cacheRead veya cacheCreation değerine sahip bir type özniteliği taşır. Yönelim, dosya içeriklerinin ulaştığı yer olduğu için input ve cacheRead içinde görünür. Bu ikisini toplayın.

Görevi, harita (map) bağlıyken her biri yeni bir oturumda olmak üzere üç kez çalıştırın. Ardından .mcp.json içindeki graft girdisini kaldırın ve üç kez daha çalıştırın. Tekil çalıştırmalar yerine medyan değerleri karşılaştırın; çünkü aracı (agent) çalıştırmaları büyük değişkenlik gösterir ve şanssız bir çalıştırma size gerçeğin tam tersini söyleyebilir. Araç çağrı sayısını da kaydedin: araç çağrıları mekanizmadır, tokenlar ise sonuçtur; dolayısıyla araç çağrılarında düşüş olmadan gerçekleşen bir token tasarrufu, başka bir şeyin değiştiği anlamına gelir.

Ardından, kıyaslama testlerinin göstermediği maliyetleri çıkarın. graft build --deep, her tam yenilemede model tokenları harcar. Altı araç şeması her istekte beraberinde gönderilir. Eğer araçlarınız kiraladığınız bir sunucuda çalışıyorsa, aracı harcamalarına katı bir üst sınır koymak, bu durumu sürpriz olmaktan çıkarıp bir bütçe planına dönüştürür ve bir kodlama aracının telemetrisi gerçekte ne raporlar konusu, dışa aktarıcıyı etkinleştirdiğinizde makineden nelerin çıktığını açıklar.

Kod tabanı haritası ne zaman işlevsiz kalır?

  • Depo zaten bağlama sığıyorsa. Tek bir küçük servis haritaya ihtiyaç duymaz; buna rağmen her istekte altı farklı araç şeması için maliyet ödersiniz. Eğer temsilciniz (agent) bugün herhangi bir dosyayı bir veya iki araç çağrısıyla bulabiliyorsa, haritayı kullanmayın.
  • Diliniz geniş kapsamlı (broad) katmandaysa. Genel çağrı kenarları, graft callers aracının bir çağırıcıyı gözden kaçırmasına veya isim çakışması nedeniyle hatalı bir çağırıcı üretmesine neden olabilir. Bir etki alanına (blast radius) güvenmeden önce graft grep ile doğrulama yapın.
  • Grafik güncelliğini yitirmişse ve kimse fark etmemişse. graft check, sapma durumunda 1 koduyla çıkar; bu ancak bir süreç tarafından çalıştırıldığında işe yarar. Bu bir alışkanlık değil, bir kanca (hook) veya CI adımı olmalıdır.
  • Monorepo kapsamlandırma gerektiriyorsa. Tek bir git deposu içeren monorepo; çalışma alanı dosyası, go.mod, pyproject.toml veya Cargo.toml ile otomatik olarak bölünür ve graft ask "..." --in services/billing/ sorguyu tek bir alt projeye daraltır. paket başına iç içe AGENTS.md dosyaları oluşturma içgüdüsü, harita için de geçerlidir.
  • Temsilci bağlantıları (wiring) görmezden geliyorsa. Haritanın kullanıldığına karar vermeden önce gerçek bir oturumdaki araç çağrılarını izleyin. Hâlâ grep çalıştıran bir temsilci, kurallar dosyasını hiç okumadığını size söylüyor demektir.

FAQ

graft/ klasörünü git deposuna eklemeli miyim?

Hayır. graft build, graft/ dosyasını .gitignore dosyanıza otomatik olarak ekler; çünkü grafik, node_modules gibi yeniden oluşturulabilir bir önbellektir. Neredeyse her düzenlemede değiştiği için, onu eklemek gerçek değişiklikleri (diff) yüzlerce oluşturulmuş dosyanın altında bırakır. Temsilcilere haritanın varlığını bildiren yapılandırmayı (AGENTS.md ve .mcp.json dahil) ekleyin ve her ekip üyesinin graft build komutunu yerel olarak çalıştırmasına izin verin. İlk commit işleminizden önce grep -n graft .gitignore ve git status --short ile doğrulama yapın; çünkü git bir dosya eklendikten sonra onu takip etmeye devam eder ve sonrasında .gitignore dosyasını düzenlemek dosyanın takibini bırakmasını sağlamaz.

Graft çalıştırmanın bir maliyeti var mı?

Yapısal kısım ücretsizdir. graft build, graft ask, graft check ve altı adet MCP getirme aracı, hiçbir zaman bir modele çağrı yapmayan tree-sitter işlemleridir. graft build --deep ücretli kısımdır: LLM aracılığıyla düz İngilizce özetleri ve sembol bazlı kritik noktaları yazar; bu kısım GRAFT_PROVIDER, GRAFT_API_KEY ve GRAFT_MODEL ile, ayrıca OpenAI uyumlu uç noktalar için GRAFT_BASE_URL ile yapılandırılır. Graft'i yalnızca yapısal özellikleriyle çalıştırabilir ve grafik için tek bir token dahi harcamayabilirsiniz.

Kod tabanı haritası depomda ne kadar tasarruf sağlar?

Ölçüm yapmadan kimse bunu söyleyemez. Proje, kendi 162 çalıştırmalık taramasında 42% daha az token, SWE-bench Verified üzerinde ise 23% daha az token rapor etmektedir; her iki sonuç da haritasız bir temel yapıya kıyaslanmıştır. Her ikisi de tedarikçi kıyaslamasıdır, bunlardan biri kısmen Graft'in kendi deposunda çalıştırılmıştır ve hiçbiri sizin özel kodunuzu tanımlamaz. Tekrarlanabilir bir soruyu harita ile üç kez, harita olmadan üç kez çalıştırın; bu sırada CLAUDE_CODE_ENABLE_TELEMETRY=1 ve OTEL_METRICS_EXPORTER=console ayarlarını yapın ve ardından input ve cacheRead türleri için claude_code.token.usage değerlerinin medyanını karşılaştırın.

Yeniden yapılandırma (refactor) yaptığımda grafiğe ne olur?

Yapı kendini yeniden ayrıştırır. Graft çalışma ağacının durumunu kontrol eder ve yalnızca değişen dosyaları yeniden ayrıştırır; bu nedenle bir yeniden adlandırma işlemi bir sonraki sorguda yaklaşık 3 ms ek yük ile algılanır. Graft, git geçmişi yerine dosyaları okuduğu için henüz commit edilmemiş çalışmaları da görür. Model tarafından yazılan özetler ise güncelliğini yitirebilir: her düğüm, kaynaklarının bir içerik özetini (hash) saklar; değişen bir kaynak, düğümü yeniden yazmak yerine güncelliğini yitirmiş olarak işaretler. Sapmayı görmek için graft check . komutunu, yazılı kısmı yenilemek için ise graft build --deep komutunu çalıştırın.

Bugün hangi kodlama temsilcileri Graft kullanabilir?

Ağustos 2026 itibarıyla graft init; Claude Code, Cursor, Codex, GitHub Copilot, Google Gemini, Kiro, Windsurf ve AdaL ile entegre çalışır. Claude Code en kapsamlı desteği alır: .mcp.json içinde bir MCP sunucu girişi, bir durum satırı, düzenleme sonrası kancalar ve .claude/ altında bir yetenek dosyası. Codex, AGENTS.md bölümüne ve ~/.codex/ altında makine genelinde girişlere sahip olur; graft init --no-global ise bunları atlar. Diğerleri bir kural veya yönlendirme dosyası alır. Diğer tüm MCP istemcileri, npx -y @nanonets/graft@0.10.1 mcp komutunu kaydederek sunucuyu doğrudan kullanabilir.