İçeriğe geç

Kurulum

İki giriş noktası var: yeni proje için start.sh, hâlihazırda yürüyen bir proje için adopt.sh. Hangi kanaldan kurarsanız kurun, çalışan aynı iki komuttur.

Gereksinimler: Claude Code 2.1.214 veya sonrası (2.1.282 ile test edildi) ve npx için Node.js 20 veya sonrası (22 ya da 24 önerilir).

npm paketini yayın iş akışının kendisi yayımlıyor; kimliğini npm’e kısa ömürlü bir token’la kanıtlıyor (npm Trusted Publishing). Depoda npm token’ı yok ve 3.2.0’dan itibaren her sürüm, npm sayfasında görünen bir provenance kaydı taşıyor.

Terminal window
# npx: kurulum gerektirmez
npx crewforth init # yeni proje
npx crewforth adopt # mevcut proje
npx crewforth@latest update # mevcut kurulumu tazele
# Sürüm arşivi: Node ya da npm gerekmez
gh release download --repo Crewforth/crewforth -p '*.tgz' && tar xzf crewforth-*.tgz
bash start.sh # yeni proje
bash adopt.sh # mevcut proje (tazelemek için tekrar çalıştırın)

Windows: Crewforth bash tabanlıdır. Git Bash içinde çalıştırın (git-scm.com); WSL de alternatif olur. Kapı hook’ları birer kabuk script’i olduğundan onları çalıştıran şey Git Bash’tir (ya da WSL). İkisi de yoksa Claude Code PowerShell aracını kendiliğinden açar, hook’lar çalışamaz ve ortada kapı kalmaz. Bu yapılandırma kapı katmanınca desteklenmiyor; kurulum script’leri de orada zaten koşamaz. Git Bash varsa kapılar iki kabuğu birden kapsar: PowerShell aracı claude.ai ve Console hesaplarında varsayılan olarak açıktır ve onun komutları da aynı kurallardan geçer (Remove-Item -Recurse -Force, … | iex, Get-Content .env ve diğerleri).

Plugin sürümü: iskele kurmadan; ajanlar, skill’ler, komutlar, kapı hook’ları ve Studio, mevcut Claude Code’unuzun içine. Çalışma kurallarının yazılacağı bir CLAUDE.md yok; bu yüzden çekirdekleri (yönlendirme, erteleme yok, yasaklar) oturum başında, /clear ve sıkıştırma sonrasında yeniden eklenir; metnin tamamı plugin’le gelir. Tam kurulumu da olan bir projede plugin hiçbir şey eklemez:

Terminal window
/plugin marketplace add Crewforth/crewforth
/plugin install crewforth@crewforth

Kurulu bir plugin, siz yenisini istemedikçe kurduğunuz sürümde kalır; bu yüzden claude plugin marketplace update crewforth ardından claude plugin update crewforth çalıştırın ve uygulanması için yeniden başlatın.

2.x plugin’inden mi geliyorsunuz? Plugin’in ve marketplace’in adı değişti, bu yüzden 2.x kurulumu 3.0’a kendiliğinden güncellenmez. Bir kez geçin:

/plugin uninstall claude-starter-kit
/plugin marketplace add Crewforth/crewforth
/plugin install crewforth@crewforth

200 000 token’lık bir modelde mi çalışıyorsunuz? Claude Code skill listesine bağlam penceresinin yüzde birini ayırır; böyle bir modelde bu 8 000 karakter eder ve plugin bunu değiştiremez. Crewforth’un skill’leri Claude Code’un kendi skill’leriyle birlikte yaklaşık 15 000 karakter tutar. Bu yüzden en az kullandığınız skill’lerin açıklamaları düşer ve o skill’lerin kendiliğinden seçilmeleri zorlaşır. ~/.claude/settings.json dosyasına eklenecek tek bir anahtar listeye yer açar:

"skillListingBudgetFraction": 0.04

Bedeli: liste bundan sonra her turda bütün hâlinde gönderilir; bu yaklaşık 3 700 token eder. 1 000 000 token’lık bir modelde varsayılan yeter, bir şey yapmanız gerekmez. Tam kurulum bu ayarı proje için kendisi yapar. Hangi durumda olduğunuzu /crew-doctor söyler.

Terminal window
bash start.sh [--private|--shared] [--ignore-local] [--lang tr|en] [--yes] [--version] [-h]

Sihirbaz önce hangi dilde konuşacağını sorar (Türkçe ya da İngilizce), ardından kurulumu kimin kullanacağını; sonunda hiçbir şey yazılmadan önce onaylayacağınız bir özet gösterir. Seçtiğiniz dil tüm sorulara ve mesajlara uygulanır; kurulan dosyalar İngilizce kalır.

Her kurulum aynı ekibi getiriyor: 14 ajanın ve 40 skill’in tamamı. Backend, web ve mobil bir arada geliyor; yığın projeden okunur (CLAUDE.md’deki ## Stack ya da depo). API olarak başlayıp web istemcisi kazanan bir proje, ikisi için de baştan donanımlıdır.

İstemci tarafında da varsayılan yığın yok: ilk istemci işi önce ## Stack’teki Client: satırını, sonra deponun manifestlerini (package.json, pubspec.yaml, Package.swift, build.gradle, MAUI *.csproj) okur; yalnız boş bir depoda, hiçbir seçeneği önermeden bir kez sorar ve cevabı kaydeder. React Native/Expo, hazır isteğe bağlı katmanlardan yalnız biridir.

Kurulumda sorulan Seçenekler Neyi değiştirir
Dil --lang tr · --lang en kurulumun ekrana yazdıkları — diske yazdığı hiçbir şey değil
Kimin için --private · --shared .claude/ ve CLAUDE.md’nin gitignore’a mı gireceği, yoksa ekip için commit mi edileceği
Yok sayma satırları nereye --ignore-local (3. cevap) izlenen .gitignore yerine yalnız bu klonun okuduğu .git/info/exclude; adopt da kabul eder

Backend yığından bağımsızdır. Kurulum yığın sormaz. İlk backend işinde backend-architecture skill’i yığını çözer: önce isteğiniz, sonra CLAUDE.md’deki ## Stack bölümü, sonra deponun manifest dosyaları (package.json, go.mod, pyproject.toml, *.csproj, …); yalnız boş bir depoda, her birinde önerilen bir cevap ve “Decide for me” seçeneği olan en fazla dört çoktan seçmeli soru sorar. Cevap ## Stack bölümüne yazılır ve bir ADR ile kaydedilir; yani bir kez sorulur. Node, Go, Python, .NET ve JVM eşit desteklenir; .claude/skills/ altına kendi desen skill’ini koyan projede o uygulanır.

Terminal window
bash adopt.sh # hedef projenin kök dizininde
Mevcut bir projeyi devralmak: tespit, öneri, dal, birlikte, disiplin, kanıt, devir Mevcut bir projeyi devralmak: tespit, öneri, dal, birlikte, disiplin, kanıt, devir

Crewforth, bir ekibin bir projeyi başka bir ekibe devrettiği gibi gelir: hiçbir şey kırılmaz, alınmış kararlar kaybolmaz ve gelen şey öylece durup beklemez.

Her değişiklik ayrı bir dala, staged ama commit’lenmemiş hâlde iner; eklenen ve değişen her dosya editörünüzün Source Control panelinde listelenir. Orada inceler, kabul için git commit, vazgeçmek için reset yaparsınız. main dalına dokunulmaz. Crewforth’un ajanları sizinkilerle çakışmadan yan yana kurulur, disiplin tek bir @import ile bağlanır, settings.json şema farkındalığıyla birleştirilir ve mevcut husky ya da lefthook zincirleri bir shim üzerinden çalışmaya devam eder. İş, kalıcı bir docs/HANDOVER.md ve bir ADR ile kapanır; böylece kararlar bir sohbet kaydında değil sürüm kontrolünde yaşar.

Terminal window
npx crewforth@latest update # ya da oturum içinde /crew-update

Yeni bir sürüm yayımlandığında Claude, oturumun başında bir kez şimdi mi, sonra mı güncelleneceğini ya da o sürümün atlanıp atlanmayacağını sorar. Kendiliğinden asla güncellemez.

Crewforth kurulum sırasında .claude/kit.conf dosyasına hangi kurulum script’inin koştuğunu, ayrıca .claude/VERSION dosyasına sürümü yazar. 3.0’dan önce .NET deseniyle kurulmuş bir proje cqrs-aop-module skill’ini korur: backend uzmanının uygulamaya devam ettiği bir proje skill’i olarak kalır; güncelleme bunu söyler ve asla silmez. Eksik her bileşen yerine konur ve eklenen her şey sessizce belirmek yerine çıktıda adıyla anılır.

Güncellemede
.claude/ ajan · skill · komut · hook · eval · studio yeni sürümden tazelenir
.claude/DISCIPLINE.md, AGENT_TEMPLATE.md, README.md yenilenir; Crewforth’a aittir, içlerinde kendinize ait hiçbir şey bırakmayın; düzenlediğiniz bir kopya önce .claude/.legacy-backup/ altında saklanır ve adıyla bildirilir
./CLAUDE.md hiç dokunulmaz; proje kurallarınız yazdığınız gibi kalır
.claude/settings.json şema farkındalığıyla birleştirilir; kendi hook’larınız ve izinleriniz korunur
kendi ajan ve skill’leriniz (crew- öneki olmayanlar) dokunulmaz

Değişikliğin nereye ineceği bir tercih. İlk devir kit-adopt-<zaman damgası> adlı bir inceleme dalı açar. .claude/ dizini gitignore’lanmış rutin bir güncelleme, bulunduğunuz dala uygulanır. .claude/ izleniyorsa güncelleme size sorar. --here veya --new-branch ile zorlayabilir, --yes ile soruları atlayabilirsiniz. Hangisi olursa olsun değişiklik staged ve commit’siz kalır. İzlenen bir .claude/ ayrıca .gitattributes’a eol pinleri alır; böylece git’i core.autocrlf=true olan — yani Git for Windows varsayılanındaki — bir takım arkadaşında hook’lar LF kalır. Git Bash CRLF bir hook’u yine de koşturur (ölçüldü); pin, koşturmayan bir bash için (belgelenmiş vaka WSL) ve çalışma ağacının commit’lenenle birebir aynı kalması için.

Oturum içinde /crew-update sürüm kontrolünü yapar, güncelleyiciyi koşturur, /crew-doctor ile doğrular ve ardından /clear önerir; böylece tazelenen disiplin yeni bir oturumda yüklenir. /crew-doctor ise canlı bir kurulumu istediğiniz an denetler (hook’lar çalıştırılabilir mi, core.hooksPath ayarlı mı, kapılar bağlı mı, disiplin gerçekten import edilmiş mi) ve projenin kendisi için tavsiye niteliğinde bir hazırlık puanı basar.

Bir projenin CLAUDE.md dosyası disiplini import etmek yerine satır içinde taşıyorsa güncellemeler oraya ulaşamaz. Güncelleyici bunu fark eder, etkilenen satırları gösterir ve onları tek bir @.claude/DISCIPLINE.md import’uyla değiştirmeyi önerir; önce yedek alır, işi de sizin inceleyeceğiniz bir dalda yapar. Reddederseniz hiçbir şeye dokunulmaz.

claude-squad ve benzeri araçlar her oturumu ayrı bir git worktree’sinde başlatır. .claude/ gitignore’daysa (npx crewforth init onu öyle bırakır) yeni bir worktree’de Crewforth dosyası yoktur, bu yüzden orada başlatılan bir Claude Code oturumu Crewforth’un hiçbir hook’unu koşmaz. Git hook’ları orada da koşar, çünkü core.hooksPath mutlak yol olarak yazılır. Oturumu başlatmadan önce .claude/ klasörünü worktree’ye kopyalayın. Proje kökünde /crew-doctor, .claude/settings.json olmayan her worktree’yi adıyla söyler. İzlenen (tracked) bir .claude/ için kopya gerekmez: worktree onu checkout eder.

npx crewforth remove neyi çıkaracağını gösterir ve hiçbir şeyi değiştirmez; npx crewforth remove --apply işi yapar. settings.json içinde .claude/hooks/ koşturan her hook girdisini (sizin hook’larınız kalır), Crewforth’un durum satırını ve yalnız kapı varken güvenli olan genel Bash iznini çıkarır, core.hooksPath ayarını geri alır (siler ya da shim’in koşturduğu hook zincirine döndürür). Crewforth’un dosyaları .claude/.crewforth-removed-<zaman>/ altına taşınır; hiçbir şey silinmez, kendi ajan ve skill’leriniz yerinde kalır. CLAUDE.md dosyasına hiç dokunulmaz: komut silmeniz için @.claude/DISCIPLINE.md satırını gösterir. Eklenti kurulumu /plugin uninstall crewforth ile kaldırılır.

Başarılı bir npx crewforth init sonunda Crewforth proje başına bir kez anonim bir sayım gönderir ve göndermeden önce bunu söyleyen bir satır basar: GET https://ping.crewforth.com/install?v=<sürüm>, User-Agent crewforth, gövde yok.

  • Gönderilen: Crewforth sürümü, başka hiçbir şey.
  • Gönderilmeyen: hiçbir türden kimlik, yol, proje ya da depo adı, git bilgisi, makine ya da kullanıcı adı, dil, yığın, preset, işletim sistemi ve zaman.
  • Ne zaman: yalnız başarılı bir init sonunda. adopt, update, add, studio, hook’lar, oturumlarınız, plugin ve kendiniz çalıştırdığınız start.sh hiçbir şey göndermez. Aynı projede ikinci bir init de göndermez; ilkini git dizinindeki, hiç gönderilmeyen bir işaret kaydeder.
  • Kapatma: CREW_NO_TELEMETRY ya da DO_NOT_TRACK değişkenini 0 dışında bir değere ayarlayın. CI tanımlı olan yerde hiçbir şey gönderilmez. Kapalıyken hiçbir şey basılmaz, gönderilmez, yazılmaz.
  • Maliyet: isteğe 1,5 saniye verilir. Hata yok sayılır ve kurulumu hiçbir zaman değiştirmez.
  • Nereye gider: kaynağının tamamı packaging/install-ping-worker/ altında duran bir Cloudflare Worker. Gün ve sürüm başına bir sayacı bir artırır, başka hiçbir şey saklamaz (IP yok, başlık yok); istek günlüğü kapalıdır. Gönderen kod bin/cli.js içindeki countInstall.