<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>SuperDevSpace blog</title>
    <link>https://superdevspace.com/tr/blog</link>
    <description>SuperDevSpace’i yaparken öğrendiklerimiz: kendi CLI aboneliğinle çalışan yapay zekâ ekipleri, git worktree’ler, rehberli kurulum ve dahası.</description>
    <language>tr</language>
    <lastBuildDate>Sun, 25 Oct 2026 10:00:00 GMT</lastBuildDate>
    <atom:link href="https://superdevspace.com/tr/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Rehberli kurulum: sizi herhangi bir web sitesinde adım adım yönlendiren bir agent</title>
      <link>https://superdevspace.com/tr/blog/rehberli-kurulum-agent</link>
      <guid isPermaLink="true">https://superdevspace.com/tr/blog/rehberli-kurulum-agent</guid>
      <pubDate>Sun, 25 Oct 2026 10:00:00 GMT</pubDate>
      <dc:creator>SuperDevSpace</dc:creator>
      <category>guided-setup</category>
      <category>browser</category>
      <category>agents</category>
      <description>Agent paneli gezer; şifre, kod ve ödeme için sayfayı size devreder, aradığı API anahtarını da yerine koyar. Nasıl çalıştığını anlatıyoruz.</description>
      <content:encoded><![CDATA[<p>Her proje er ya da geç bir web sitesinden bir şeye ihtiyaç duyar. Bir ödeme sağlayıcısının API anahtarı. Bir webhook sırrı. Üç menü derindeki bir panelden alınacak bir client token. Bir agent entegrasyonu dakikalar içinde yazar, sonra durur ve paneli sizin gezmeniz gerektiğini söyler — çünkü o kısım bir tarayıcıda, sizin oturumunuzun arkasında olur.</p>
<p>Rehberli kurulum, SuperDevSpace&#39;in bu boşluğu kapatma yolu. Agent siteyi uygulamanın kendi tarayıcısında açar, yapmasına izin verilen tıklamaları yapar ve sıradaki adım sizinse sayfayı bir işaret ve tek bir cümleyle tam o anda size devreder.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/inspector-chain.webp" alt="Uygulamanın yerleşik tarayıcı panelinde bir web sayfası; seçilen bir öğe ve dosya-satır bilgisiyle bileşen zinciri" loading="lazy" decoding="async"><figcaption>Uygulamanın içindeki tarayıcı paneli — rehberli kurulumun kullandığı panelin ta kendisi; burada Inspector ile (gerçek uygulama).</figcaption></figure>
<h2 id="bırakın-agent-yapsın-neden-yanlış-cevap">&quot;Bırakın agent yapsın&quot; neden yanlış cevap</h2>
<p>Bu özelliğin kolay versiyonu agent&#39;a tarayıcının tamamını verirdi: her alanı okusun, her kutuya yazsın, her düğmeye bassın. Hızlı olurdu ve kötü bir fikir olurdu. Bir kurulum akışı, bir agent&#39;ın asla dokunmaması gereken şeylerle doludur:</p>
<ul>
<li>şifreniz ve telefonunuza gelen tek kullanımlık kod;</li>
<li>kart numaraları, banka bilgileri ve kimlik belgeleri;</li>
<li>kabul ettiğiniz koşullar ve onayladığınız ödeme.</li>
</ul>
<p>Bu yüzden tasarım tersten başlıyor. Agent rutin işi yapar — gezinir, doğru sayfayı bulur, bir proje adı yazar, <strong>Oluştur</strong>&#39;a basar — kişisel ya da bağlayıcı olan her şey sizde kalır.</p>
<div class="table-scroll"><table><thead><tr><th>Kurulum akışındaki adım</th><th>Agent</th><th>Siz</th></tr></thead><tbody><tr><td>Paneli açıp doğru sayfayı bulmak</td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td><td></td></tr>
<tr><td>Proje adı, URL, listeden bir seçim girmek</td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td><td></td></tr>
<tr><td>Şifrenizi ya da telefonunuzdaki kodu yazmak</td><td><span class="blog-no" role="img" aria-label="Hayır">✗</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr>
<tr><td>Kart, banka ya da kimlik bilgisi girmek</td><td><span class="blog-no" role="img" aria-label="Hayır">✗</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr>
<tr><td>Koşulları işaretlemek, &quot;Öde&quot; ya da &quot;Siparişi ver&quot;e basmak</td><td><span class="blog-no" role="img" aria-label="Hayır">✗</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr>
<tr><td>Yeni API anahtarını okuyup <code>.env</code>&#39;e koymak</td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td><td></td></tr></tbody></table></div>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Not"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg><span>Sınırı uygulama koruyor</span></p><p>Bunlar bir prompt&#39;taki öneriler değil. Agent&#39;ın sınırı geçme girişimini uygulama reddeder; agent laf kalabalığıyla bu sınırı aşamaz.</p>
</aside>
<h2 id="rehberli-kurulum-nasıl-ilerler">Rehberli kurulum nasıl ilerler</h2>
<p>Döngü her sitede aynı — kimsenin talimat yazmadığı siteler dahil.</p>
<div class="blog-steps"><ol>
<li><strong>Sayfayı açar.</strong> Agent uygulamanın içinde bir tarayıcı sekmesi açar. O tarayıcıdaki oturumlarınız yeniden başlatmalarda korunur; büyük ihtimalle zaten giriş yapmışsınızdır.</li>
<li><strong>Hareket etmeden önce bakar.</strong> Agent sayfanın bir özetini ister: her başlık, düğme, bağlantı, alan ve frame için bir satır. Hassas alanlar türüyle listelenir — şifre, kart, banka, tek kullanımlık kod, kimlik — yanında &quot;dolu&quot; ya da &quot;boş&quot; yazar, asla değeri değil.</li>
<li><strong>Kendi yarısını yapar.</strong> Tıklar, sıradan alanları doldurur, metin okur; sayfayı değiştiren her şeyden sonra sayfayı yeniden okur.</li>
<li><strong>Sizin yarınızı devreder.</strong> Sıradaki adım sizinse agent sayfada bir rehber kartı gösterir: kısa bir başlık, tek bir somut talimat ve kastettiği alan ya da düğmede bir vurgu. Adımı yapar, <strong>Bitti — devral</strong>&#39;a basarsınız. Takılırsanız <strong>Yardım lazım</strong>&#39;a basıp ne gördüğünüzü yazarsınız; agent sayfada yanıt verir.</li>
<li><strong>Aynı turda bekler.</strong> Rehber açıkken agent sizi bekler. Sayfayı geri verene kadar tıklamaları ve yazmaları reddedilir; dilediğiniz an <strong>Durdur / kontrolü al</strong>&#39;a basabilirsiniz.</li>
<li><strong>Sonucu yerine koyar.</strong> Sayfa aradığınız şeyi gösterdiğinde — bir API anahtarı, bir token, bir webhook sırrı — agent onu sır olarak okur ve ait olduğu yere, örneğin projenin <code>.env</code> dosyasına koyar. Anahtarın kendisini değil, <em>nerede</em> olduğunu raporlar.</li>
</ol>
</div>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/e585225d589363f7ac76-light.svg" width="993" height="491" alt="Bir rehberli kurulum, ilk sayfadan saklanan anahtara kadar" loading="lazy" decoding="async"><figcaption>Bir rehberli kurulum, ilk sayfadan saklanan anahtara kadar</figcaption></figure>
<p>İş bitince sonucu, ekrana bir sır basmadan kontrol edebilirsiniz:</p>
<pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> grep</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -o</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> '^PADDLE_[A-Z_]*='</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> .env</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PADDLE_API_KEY</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PADDLE_CLIENT_TOKEN</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PADDLE_WEBHOOK_SECRET</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">PADDLE_ENVIRONMENT</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span></span></code></pre>
<h2 id="uygulamanın-uyguladığı-kurallar">Uygulamanın uyguladığı kurallar</h2>
<p>Bunlar uygulamadaki kontroller ve agent bunları kapatamaz:</p>
<ul>
<li><strong>İçeri sır yok, dışarı sır yok.</strong> Agent şifre, kart, CVC, IBAN, tek kullanımlık kod ya da kimlik alanına yazamaz. Sayfayı okuduğunda ya da anlık görüntü aldığında bu değerler gizlenir ve okuduğu her metinden temizlenir.</li>
<li><strong>Ekran görüntülerinin üstü örtülür.</strong> Hassas alanlar ve her cross-origin frame — bir kart widget&#39;ı, bir &quot;Google ile giriş yap&quot; kutusu — agent bir görüntü görmeden önce kapatılır.</li>
<li><strong>Hassas sayfalarda betik yok.</strong> Böyle bir alan gösteren her sayfada sayfa içinde JavaScript çalıştırmak reddedilir.</li>
<li><strong>Onay ve ödeme sizindir.</strong> Bir koşullar kutucuğuna ya da &quot;Öde&quot; / &quot;Siparişi ver&quot; düğmesine tıklamak reddedilir.</li>
<li><strong>Her şey görünür.</strong> Agent&#39;ın tarayıcı panelinde yaptıkları, olurken panelin şeridinde size gösterilir.</li>
<li><strong>Sırlar konuşmanın dışında kalır.</strong> Sır olarak okunan bir değer hassas diye işaretlenir ve agent&#39;a onu sohbette, raporlarda, görev notlarında ya da bildirimlerde asla tekrarlamaması söylenir.</li>
</ul>
<aside class="blog-callout blog-callout-warning" role="note" aria-label="Uyarı"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg><span>Uyarı</span></p><p>Bir ödemeyi onaylamak ya da koşulları kabul etmek her zaman sizin tıklamanızdır. Akış bunlardan biri olmadan ilerleyemiyorsa agent sayfayı size devreder ve bekler.</p>
</aside>
<h2 id="bir-entegrasyon-listesi-değil-her-web-sitesi">Bir entegrasyon listesi değil, her web sitesi</h2>
<p>Rehberli kurulum bir döngüdür, bir betik kütüphanesi değil. Kimsenin ipucu yazmadığı bir sitede de çalışır, çünkü agent önündeki gerçek sayfayı okur. Birkaç servis için kısa ipucu dosyaları veriyoruz — örneğin Paddle&#39;ın sandbox paneli ve RevenueCat — geliştirici ayarlarının genelde nerede olduğunu agent&#39;a söyleyen dosyalar. Paneller menülerini sürekli değiştirir; bu yüzden ipuçları açıkça şunu söyler: sayfa ile ipucu çelişirse sayfaya güven.</p>
<p>Bu, kulağa geldiğinden daha önemli. Bir agent&#39;ın yazdığı entegrasyon kodu bir özelliğin yalnızca yarısı; diğer yarısı başkasının sitesindeki hesap, anahtar ve webhook. Rehberli kurulumla iki yarı da aynı oturumda, aynı agent&#39;la olur; siz de zamanınızı yalnızca sizin yapabileceğiniz adımlara harcarsınız.</p>
<h2 id="nereye-oturuyor">Nereye oturuyor</h2>
<p>Rehberli kurulum, SuperDevSpace&#39;teki her şeyle aynı çalışma alanının parçası: ödeme entegrasyonunuzu yazan agent, onun anahtarlarını oluştururken size eşlik eden agent&#39;ın ta kendisidir — terminalinin yanındaki bir tarayıcı panelinde. Yeniyseniz, <a href="https://superdevspace.com/tr/blog/superdevspace-neden">SuperDevSpace&#39;i neden yaptığımızı</a> anlatan yazı etrafındaki ekibin geri kalanını açıklıyor.</p>
<h2 id="deneyin">Deneyin</h2>
<p>Deneme süresi 14 gün Premium, kart gerekmez. <a href="https://superdevspace.com/tr/download">SuperDevSpace&#39;i indirin</a>, bir agent&#39;tan projeniz için bir ödeme ya da analitik sağlayıcısı kurmasını isteyin ve sıra size geldiğinde sayfayı size devretmesine izin verin.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Paralel kodlama agent&apos;larını git worktree&apos;lerde çalıştırmak</title>
      <link>https://superdevspace.com/tr/blog/git-worktree-ile-paralel-agentlar</link>
      <guid isPermaLink="true">https://superdevspace.com/tr/blog/git-worktree-ile-paralel-agentlar</guid>
      <pubDate>Sun, 25 Oct 2026 09:00:00 GMT</pubDate>
      <dc:creator>SuperDevSpace</dc:creator>
      <category>git-worktrees</category>
      <category>agents</category>
      <category>workflow</category>
      <description>SuperDevSpace birden çok agent&apos;ı tek repoda nasıl ayrı tutuyor: worker başına bir git worktree ve dal, her turda commit ve squash merge.</description>
      <content:encoded><![CDATA[<p>İki kodlama agent&#39;ını aynı checkout&#39;ta çalıştırın; yazılım ekiplerinin neden dal kullandığını hemen anlarsınız. Bir agent bir modülün adını değiştirirken diğeri test suite&#39;ini bu değişikliğin yarısına karşı koşturur. Biri, diğerinin az önce sildiği dosyaları stage&#39;e alır. İkisi de hatalı değil; sadece aynı masayı paylaşıyorlar.</p>
<p>SuperDevSpace bir manager&#39;ı ve birkaç worker&#39;ı aynı repoda aynı anda çalıştırır. Bu yazı onları birbirinden ayıran mekanizmayı — git worktree&#39;leri — ve uygulamanın bunlar etrafında uyduğu kuralları anlatıyor.</p>
<h2 id="git-worktree-nedir">Git worktree nedir</h2>
<p>Bir git reposunun normalde tek bir çalışma dizini vardır. <code>git worktree</code> aynı repoya birden çok çalışma dizini verir; her biri kendi dalında checkout edilmiştir ve hepsi aynı nesne veritabanını paylaşır. İkinci bir clone ya da geçmişin ikinci bir kopyası yoktur: yeni bir worktree yalnızca bir checkout&#39;un dosyaları kadar yer kaplar.</p>
<p>Herhangi bir repoda elle deneyebilirsiniz. Komutlar her yerde aynı; değişen yalnızca kabuk:</p>
<div class="blog-tabs" data-tabs><section class="blog-tab-panel" id="blog-tab-1-0" data-tab-label="macOS / Linux"><p class="blog-tab-label">macOS / Linux</p><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> worktree</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -b</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> agent/frontend-demo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ../myrepo-frontend</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> worktree</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> list</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ../myrepo-frontend</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> &#x26;&#x26; </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> status</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> -</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> &#x26;&#x26; </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> worktree</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> remove</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ../myrepo-frontend</span></span></code></pre>
</section><section class="blog-tab-panel" id="blog-tab-1-1" data-tab-label="Windows (PowerShell)"><p class="blog-tab-label">Windows (PowerShell)</p><pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">git worktree add </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">b agent</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">/</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">frontend</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">demo ..\myrepo</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">frontend</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">git worktree list</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">cd ..\myrepo</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">frontend; git status</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">cd ..\myrepo; git worktree remove ..\myrepo</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">frontend</span></span></code></pre>
</section></div>
<p>Her worktree&#39;nin kendi <code>HEAD</code>&#39;i, kendi index&#39;i ve kendi dosyaları var. İki süreç iki worktree&#39;de aynı anda düzenleme, build ve test yapabilir; birbirinin yarım kalmış değişikliklerini görmez. Bir agent ekibinin ihtiyaç duyduğu özellik tam olarak bu.</p>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Not"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg><span>Not</span></p><p>Bir worktree&#39;yi kaldırmak dalını silmez. Commit&#39;ler, dalı siz silene kadar repoda kalır.</p>
</aside>
<h2 id="superdevspace-bunları-nasıl-kullanıyor">SuperDevSpace bunları nasıl kullanıyor</h2>
<p>Kurallar basit ve her organizasyon için aynı:</p>
<ul>
<li><strong>Manager ana checkout&#39;unuzda çalışır.</strong> Planlar, inceler ve birleştirir; dalların bir araya geldiği tek yer orasıdır.</li>
<li><strong>Her worker kendi dalında kendi worktree&#39;sini alır.</strong> Manager bir worker işe aldığında uygulama onun için <code>git worktree add -b &lt;dal&gt; &lt;yol&gt;</code> çalıştırır. Siz bir ad vermediyseniz dalın adı <code>agent/&lt;worker-adı&gt;-&lt;damga&gt;</code> olur.</li>
<li><strong>Worktree&#39;ler uygulamanın kendi veri klasöründe</strong>, <code>worktrees/&lt;organizasyon&gt;/&lt;worker&gt;</code> altında durur; asla reponuzun içinde değil. Proje klasörünüz agent dizinleriyle dolmaz.</li>
<li><strong>Her tur commit&#39;lenir.</strong> Bir worker bir turu bitirdiğinde uygulama worktree&#39;sinde değişen her şeyi commit&#39;ler (<code>agent(&lt;ad&gt;): turn</code>). Bir worker&#39;ın yaptığı hiçbir şey yalnızca commit&#39;lenmemiş bir çalışma dizininde kalmaz.</li>
<li><strong>Birleştirme bir squash merge&#39;dür.</strong> Manager bir worker&#39;ın raporunu kabul ettiğinde dal, <code>git merge --squash</code> ile tek bir commit olarak sizin hattınıza birleştirilir. Merge çakışırsa uygulama onu iptal eder ve sizi çakışmalı bir merge&#39;ün ortasında bırakmak yerine repoyu bir sonraki işlem için temiz bırakır.</li>
<li><strong>Repo başına aynı anda tek bir git işlemi.</strong> Worktree dizinleri dosyaları ayırır; repo başına bir kuyruk git komutlarının kendisini sıraya koyar. Aynı anda biten iki worker git&#39;in meta verisi üzerinde asla yarışmaz.</li>
</ul>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/07d04733197e790ffbe1-light.svg" width="471" height="259" alt="İki worker, iki dal, iki squash merge" loading="lazy" decoding="async"><figcaption>İki worker, iki dal, iki squash merge</figcaption></figure>
<p>Panoda bu, aynı anda ilerleyen birkaç görev olarak görünür; her biri farklı bir worker&#39;a ait, her birinin altında kendi dalı var.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/board-sprint.webp" alt="Yapılacak, devam ediyor, onay bekliyor, incelemede ve bitti sütunlarına dağılmış görevlerin olduğu bir sprint panosu" loading="lazy" decoding="async"><figcaption>Bir organizasyonun panosunda paralel ilerleyen görevler — her worker kendi dalında (gerçek uygulama).</figcaption></figure>
<h2 id="i-şi-pratik-yapan-parçalar">İşi pratik yapan parçalar</h2>
<p>Yeni bir worktree yalnızca git&#39;in takip ettiği dosyaları içerir. Bu genellikle bir projeyi çalıştırmaya yetmez: <code>node_modules</code>, yerel bir <code>.env</code>, üretilmiş dosyalar. Bunu iki ayrıntı çözüyor.</p>
<h3 id="repo-başına-bir-kurulum-betiği">Repo başına bir kurulum betiği</h3>
<p>Reponuzda <code>.super/scripts/setup-worktree.sh</code> varsa, uygulama onu worker başlamadan önce her yeni worktree&#39;nin içinde çalıştırır; <code>SUPERDEV_MAIN_REPO</code> ana checkout&#39;unuzu gösterir. Çıktısı canlı akar, yani uzun bir kurulum kör bir bekleyiş değildir ve iptal edebilirsiniz.</p>
<pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">#!/usr/bin/env bash</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">set</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> -euo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> pipefail</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Yalnızca yerelde duran dosyaları ana checkout'tan kopyala</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> "</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$SUPERDEV_MAIN_REPO</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">/.env"</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> .env</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> 2></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">/dev/null</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ||</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Bağımlılıkları kur (pnpm tek bir paylaşılan depodan bağlar, hızlıdır)</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --frozen-lockfile</span></span></code></pre>
<aside class="blog-callout blog-callout-tip" role="note" aria-label="İpucu"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"/><path d="M9 18h6"/><path d="M10 22h4"/></svg><span>Kurulum betiğini hızlı tutun</span></p><p>Worker ancak betik bittikten sonra başlar ve başarısız olan bir betik, bir agent&#39;ın yarım hazırlanmış bir ağaçta çalışmasına izin vermek yerine başlatmayı durdurur. Paylaşılan depolu bir paket yöneticisi her yeni worktree&#39;yi ucuz tutar.</p>
</aside>
<h3 id="submodule-ler">Submodule&#39;ler</h3>
<p><code>git worktree add</code> submodule&#39;leri boş bırakır. Yeni worktree&#39;de bir <code>.gitmodules</code> dosyası varsa uygulama içinde <code>git submodule update --init --recursive</code> çalıştırır; böylece bir worker sessizce eksik kalmış bir bağımlılığa karşı build almaz.</p>
<h2 id="i-ş-kaybetmeden-temizlik">İş kaybetmeden temizlik</h2>
<p>Worktree&#39;ler birikir. Uygulama onları geri alır ama bunu temkinli yapar:</p>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/540ac1cd4743df541186-light.svg" width="405" height="763" alt="Bir worker&#39;ın worktree&#39;si ne zaman kaldırılabilir" loading="lazy" decoding="async"><figcaption>Bir worker&#39;ın worktree&#39;si ne zaman kaldırılabilir</figcaption></figure>
<p>Commit&#39;lenmemiş değişikliği olan ya da dalında henüz sizin hattınıza girmemiş iş bulunan bir worktree olduğu yerde kalır. Silinmiş bir klasör yeniden oluşturulabilir; kaybolan iş geri gelmez. Aynı temkin dallar için de geçerli: uygulama kendi oluşturduğu dalların kaydını tutar ve yalnızca onlara dokunur.</p>
<h2 id="sizin-için-ne-değişiyor">Sizin için ne değişiyor</h2>
<p>Her worker kendi dalında olunca &quot;dört agent&#39;ı aynı anda çalıştır&quot; bir kumar olmaktan çıkar. Şunları yapabilirsiniz:</p>
<ul>
<li>manager&#39;a bağımsız görevlere bölünen bir direktif verip worker&#39;ları paralel çalıştırmak;</li>
<li>herhangi bir worker&#39;ın diff&#39;ini, onu üreten konuşmanın yanında tek başına okumak;</li>
<li>bir worker&#39;ın değişikliğini diğerlerini bozmadan reddetmek;</li>
<li>ekip çalışırken ana checkout&#39;unuzu kendiniz kullanmaya devam etmek.</li>
</ul>
<p>Bu, insan ekiplerinin kullandığı disiplinin aynısı; birbirinin ayağına basmak üzere olduklarını size söyleyemeyen agent&#39;lara uygulanmış hali. Bunun etrafında neden koca bir uygulama yaptığımızı merak ediyorsanız <a href="https://superdevspace.com/tr/blog/superdevspace-neden">ilk yazımız</a> o hikâyeyi anlatıyor.</p>
<h2 id="deneyin">Deneyin</h2>
<p>14 günlük deneme Premium ve kart gerektirmez. <a href="https://superdevspace.com/tr/download">SuperDevSpace&#39;i indirin</a>, yeni bir organizasyonu bir repoya yönlendirin ve manager ilk worker&#39;larını işe alırken worktree&#39;lerin belirişini izleyin.</p>
]]></content:encoded>
    </item>
    <item>
      <title>SuperDevSpace&apos;i neden yaptık: kendi CLI aboneliğinizde çalışan bir yapay zekâ takımı</title>
      <link>https://superdevspace.com/tr/blog/superdevspace-neden</link>
      <guid isPermaLink="true">https://superdevspace.com/tr/blog/superdevspace-neden</guid>
      <pubDate>Sun, 25 Oct 2026 08:00:00 GMT</pubDate>
      <dc:creator>SuperDevSpace</dc:creator>
      <category>launch</category>
      <category>agents</category>
      <category>claude-code</category>
      <description>Manager planlar, worker&apos;lar kendi terminal ve git worktree&apos;lerinde çalışır — hepsi zaten ödediğiniz agent CLI&apos;ı ile. Neden yaptığımızı anlatıyoruz.</description>
      <content:encoded><![CDATA[<p>Claude Code gibi bir agent CLI&#39;ına zaten para ödüyorsanız, elinizde tek bir terminal penceresinin kullandırdığından çok daha fazla kapasite var. Model plan yapabilir, kod yazabilir, test koşturabilir ve ne yaptığını anlatabilir. Tek başına yapamadığı şey aynı anda beş kişi olmak, kimin ne yaptığını takip etmek ve gün sonunda size tek bir dürüst rapor vermek.</p>
<p>SuperDevSpace&#39;i bu boşluk yüzünden yaptık. Zaten sahip olduğunuz CLI&#39;ı küçük bir takıma dönüştüren bir masaüstü uygulaması: işi planlayan bir manager ve işi yapan worker&#39;lar — her biri kendi terminalinde, kendi git worktree&#39;sinde.</p>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Not"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/></svg><span>Orkestrayı satıyoruz, müzisyenleri değil</span></p><p>SuperDevSpace model ya da token satmaz. Zaten ödediğiniz agent CLI&#39;ını, o sağlayıcıyla kendi sözleşmeniz altında çalıştırır.</p>
</aside>
<h2 id="tek-terminalde-tek-agent-ın-sorunu">Tek terminalde tek agent&#39;ın sorunu</h2>
<p>Tek bir kodlama agent&#39;ıyla çalışmak tek bir iş için harika hissettirir. Aynı repoda üç işiniz olduğu anda dağılır:</p>
<ul>
<li>İkinci bir terminal açabilirsiniz ama iki agent artık aynı checkout&#39;u düzenliyor. Biri test suite&#39;i koştururken diğeri bir refactor&#39;ın tam ortasında.</li>
<li>Proje yöneticisi siz olursunuz. İşi siz bölersiniz, hangi terminalde hangi görev vardı siz hatırlarsınız, bağlamı bir oturumdan diğerine siz taşırsınız.</li>
<li>Olanları kimse yazmaz. Öğle yemeğinden döndüğünüzde elinizdeki tek kayıt terminalin geçmişidir.</li>
</ul>
<p>Bunların hiçbiri model sorunu değil. Bu bir organizasyon sorunu — ve organizasyon, yazılımın iyi olduğu bir iş.</p>
<div class="table-scroll"><table><thead><tr><th></th><th>Tek terminal, tek agent</th><th>Bir SuperDevSpace organizasyonu</th></tr></thead><tbody><tr><td>Çakışmadan paralel çalışma</td><td><span class="blog-no" role="img" aria-label="Hayır">✗</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr>
<tr><td>Her worker&#39;a ayrı worktree ve dal</td><td><span class="blog-no" role="img" aria-label="Hayır">✗</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr>
<tr><td>Panoda görevlere bölünmüş iş</td><td><span class="blog-no" role="img" aria-label="Hayır">✗</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr>
<tr><td>Her görev için yazılı rapor</td><td><span class="blog-no" role="img" aria-label="Hayır">✗</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr>
<tr><td>Değişiklik ana dala girmeden diff&#39;i siz incelersiniz</td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr>
<tr><td>Zaten ödediğiniz CLI ile çalışır</td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td><td><span class="blog-yes" role="img" aria-label="Evet">✓</span></td></tr></tbody></table></div>
<h2 id="superdevspace-aslında-ne-yapıyor">SuperDevSpace aslında ne yapıyor</h2>
<p>SuperDevSpace&#39;te her repo bir <strong>organizasyondur</strong>. Her organizasyonun bir <strong>manager</strong>&#39;ı vardır: gerçek bir terminalde çalışan, görebildiğiniz ve içine yazabildiğiniz gerçek bir agent CLI oturumu. Manager&#39;a sade bir dille bir direktif verirsiniz — yazarak ya da sesle dikte ederek.</p>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/a88b0af418321bbf808c-light.svg" width="454" height="640" alt="Tek bir direktif nasıl birleştirilmiş işe dönüşür" loading="lazy" decoding="async"><figcaption>Tek bir direktif nasıl birleştirilmiş işe dönüşür</figcaption></figure>
<p>Manager sonra bir ekip liderinin yapacağını yapar:</p>
<div class="blog-steps"><ol>
<li><strong>Planlar.</strong> Bir sprint açar, direktifi panoda kısa bir brief&#39;i olan görevlere böler.</li>
<li><strong>İşe alır.</strong> Bu görevler için worker&#39;lar alır. Her worker, kendi görünür terminal sekmesinde çalışan ayrı bir gerçek CLI oturumudur ve bir rolü vardır — frontend geliştirici, QA mühendisi gibi.</li>
<li><strong>Ayırır.</strong> Her worker kendi dalında kendi git worktree&#39;sini alır; paralel iş tek bir checkout&#39;ta asla çakışmaz. <a href="https://superdevspace.com/tr/blog/git-worktree-ile-paralel-agentlar">Bunun nasıl çalıştığını</a> ayrı bir yazıda anlattık.</li>
<li><strong>İnceler.</strong> Bir worker işini bitirince rapor gönderir. Manager raporu inceler, dalı birleştirir, bir şey eksikse düzeltme ister.</li>
<li><strong>Raporlar.</strong> Beş ayrı terminal geçmişi yerine tek bir toplu rapor alırsınız.</li>
</ol>
</div>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/team-roles.webp" alt="“Ajanlarını ekle” penceresi: frontend, backend, QA mühendisi, kod inceleyici, tasarımcı ve DevOps gibi roller; ajan adı ve isteğe bağlı ek talimat alanları" loading="lazy" decoding="async"><figcaption>Ekip kurulurken bir worker&#39;ın rolünü seçmek (gerçek uygulama).</figcaption></figure>
<p>İstediğiniz an araya girebilirsiniz. Her agent&#39;ın bir sohbet görünümü ve gerçek terminali var — tek oturum, iki bakış açısı. Her değişiklik, onu üreten konuşmanın yanında bir diff olarak görünür; ana dalınıza girmeden önce siz incelersiniz.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/board-sprint.webp" alt="Bir organizasyonun sprint panosu: birikim, yapılacak, devam ediyor, onay bekliyor, incelemede ve bitti sütunları ve şeritlere göre etiketlenmiş görev kartları" loading="lazy" decoding="async"><figcaption>Ekibi çalışırken bir demo organizasyonunun sprint panosu (gerçek uygulama).</figcaption></figure>
<h2 id="aboneliğiniz-makineniz-kodunuz">Aboneliğiniz, makineniz, kodunuz</h2>
<p>En önemli tasarım kararı aynı zamanda en basiti: <strong>SuperDevSpace zaten ödediğiniz bir CLI&#39;ı çalıştırır.</strong> Model erişimini asla yeniden satmayız; çalıştırdığınız hiçbir şey SuperDevSpace aboneliğinin ötesinde bizden gelen bir faturada görünmez.</p>
<p>Bu kararın sevdiğimiz sonuçları var:</p>
<ul>
<li><strong>Agent&#39;lar makinenizde yerel süreçler olarak çalışır</strong>, yerel repolarınız üzerinde. Kaynak kodunuz, prompt&#39;larınız, terminal çıktınız ve dosya yollarınız sunucularımıza asla gönderilmez. Hesap servisimiz yalnızca bir hesap, bir abonelik durumu ve bir cihaz listesi tutar.</li>
<li><strong>CLI&#39;ı organizasyon başına siz seçersiniz.</strong> Claude Code, OpenAI Codex, Gemini CLI, Aider, Qwen Code, Cursor CLI ve OpenCode seçilebilir. Uygulamanın bugün akıcı konuştuğu CLI Claude Code — hook&#39;lar, resume, MCP araçları, izin yanıtları. Diğer altısı başlar ve çalışır; uygulama onları deneysel olarak işaretler ve sessizce başarısız olmak yerine hangi eklerin henüz bağlanmadığını söyler.</li>
<li><strong>Hiçbir şey bizim bulutumuza kilitli değildir</strong>, çünkü işi yapan bir bulut yok.</li>
</ul>
<p>İlk direktiften önce CLI&#39;ın ve reponun beklediğiniz yerde olduğunu kontrol etmekte fayda var:</p>
<pre class="shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> claude</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> --version</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> cd</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ~/code/projeniz</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> status</span></span></code></pre>
<h2 id="ekibin-etrafındaki-parçalar">Ekibin etrafındaki parçalar</h2>
<p>Bir ekibin terminalden fazlasına ihtiyacı var. Her planla gelenlerden birkaçı:</p>
<ul>
<li><strong>Doğruyu söyleyen bir pano.</strong> Sprint&#39;ler, görevler, brief&#39;ler ve raporlar. Bir rapor neyin geçtiğini değil, neyin başarısız olduğunu da söyler.</li>
<li><strong>Inspector.</strong> Çalışan web sayfanızda bir öğeye tıklayın ve onu bileşen, dosya ve satır bilgisiyle bir agent&#39;a gönderin. Vite, Next.js ve statik sitelerle çalışır.</li>
<li><strong>Telefonunuzdan onay.</strong> Bir agent&#39;ın karara ihtiyacı olduğunda size sorar. Telefon uygulaması panoyu, agent&#39;ları ve bekleyen onayları gösterir; bir izin isteğini masanızdan uzaktayken yanıtlayabilirsiniz.</li>
<li><strong>Organizasyon başına bir beyaz tahta</strong> (Excalidraw); agent&#39;lar okuyabilir ve üzerine çizebilir.</li>
</ul>
<figure class="blog-figure blog-figure-video"><video class="blog-video" muted loop playsinline controls preload="metadata" data-autoplay aria-label="Ürün tanıtımından kısa, sessiz bir döngü: bir organizasyon oluşturmak ve ilk adımlar"><source src="https://superdevspace.com/media/superdevspace-tanitim-loop.mp4" type="video/mp4"></video><figcaption>Gerçek ürün tanıtımından birkaç saniye.</figcaption></figure>
<p>Premium daha ileri giden parçaları ekler: Penpot üzerine kurulu, dosyaya çizen bir Designer agent&#39;ı olan tasarım modu; direktifleri bir takvime göre çalıştıran zamanlamalar; ve Mac&#39;inizdeki bir manager&#39;ın Windows PC&#39;nizdeki bir manager&#39;a iş devretmesini sağlayan eş bağlantısı. Tam karşılaştırma <a href="https://superdevspace.com/tr/pricing">fiyatlandırma sayfasında</a>.</p>
<h2 id="söz-vermediklerimiz">Söz vermediklerimiz</h2>
<aside class="blog-callout blog-callout-warning" role="note" aria-label="Uyarı"><p class="blog-callout-title"><svg class="blog-icon" viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"/><path d="M12 9v4"/><path d="M12 17h.01"/></svg><span>Etkileyici değil, net olmayı seçiyoruz</span></p><p>SuperDevSpace modeli daha akıllı yapmaz; modele içinde çalışacağı bir yapı verir. macOS (Apple silicon) ve Windows (64-bit) üzerinde çalışır; Linux için henüz bir tarih yok ve uydurmayacağız.</p>
</aside>
<p>Bir agent ekibinin yine de bir patrona ihtiyacı var: neyin yapılacağına siz karar verirsiniz, ana dalınıza neyin gireceğini siz onaylarsınız.</p>
<h2 id="deneyin">Deneyin</h2>
<p>Deneme süresi 14 gün Premium, kart gerekmez. CLI aboneliğiniz sizin kalır, kodunuz da. Ekibin kendi reponuzda çalıştığını görmek isterseniz <a href="https://superdevspace.com/tr/download">SuperDevSpace&#39;i indirin</a> ve manager&#39;a ilk direktifini verin.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
