<?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>Blog de SuperDevSpace</title>
    <link>https://superdevspace.com/es/blog</link>
    <description>Notas sobre cómo construimos SuperDevSpace: equipos de agentes de IA con tu propia suscripción CLI, git worktrees, configuración guiada y más.</description>
    <language>es</language>
    <lastBuildDate>Sun, 25 Oct 2026 10:00:00 GMT</lastBuildDate>
    <atom:link href="https://superdevspace.com/es/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>Configuración guiada: un agente que te acompaña en cualquier sitio web</title>
      <link>https://superdevspace.com/es/blog/configuracion-guiada-agente</link>
      <guid isPermaLink="true">https://superdevspace.com/es/blog/configuracion-guiada-agente</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>El agente recorre el panel, te pasa la página para contraseñas, códigos y pagos, y guarda la clave de API que buscaba. Así funciona.</description>
      <content:encoded><![CDATA[<p>Todo proyecto acaba necesitando algo de un sitio web. La clave de API de un proveedor de pagos. Un secreto de webhook. Un client token escondido tres menús más abajo en un panel. Un agente escribe la integración en minutos, y luego se detiene y te dice que vayas tú a hacer clic por el panel, porque esa parte ocurre en un navegador, detrás de tu inicio de sesión.</p>
<p>La configuración guiada es la forma en que SuperDevSpace cierra ese hueco. El agente abre el sitio en el navegador integrado de la app, hace los clics que tiene permitidos y te pasa la página, con una indicación y una frase, justo cuando el siguiente paso te toca a ti.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/inspector-chain.webp" alt="El panel de navegador integrado de la app mostrando una página web, con un elemento seleccionado y su cadena de componentes con archivo y línea" loading="lazy" decoding="async"><figcaption>El panel de navegador de la app, el mismo que controla la configuración guiada, aquí con Inspector (app real, en turco).</figcaption></figure>
<h2 id="por-qué-que-lo-haga-el-agente-es-la-respuesta-equivocada">Por qué «que lo haga el agente» es la respuesta equivocada</h2>
<p>La versión fácil de esta función le daría al agente todo el navegador: leer cada campo, escribir en cada casilla, pulsar cada botón. Sería rápido, y sería mala idea. Un proceso de configuración está lleno de cosas que un agente no debería tocar nunca:</p>
<ul>
<li>tu contraseña y el código de un solo uso de tu móvil;</li>
<li>números de tarjeta, datos bancarios y documentos de identidad;</li>
<li>las condiciones que aceptas y el pago que apruebas.</li>
</ul>
<p>Así que el diseño empieza por el otro extremo. El agente hace el trabajo rutinario —navegar, encontrar la página correcta, escribir un nombre de proyecto, pulsar <strong>Crear</strong>— y todo lo personal o vinculante se queda contigo.</p>
<div class="table-scroll"><table><thead><tr><th>Paso de un proceso de configuración</th><th>El agente</th><th>Tú</th></tr></thead><tbody><tr><td>Abrir el panel y encontrar la página correcta</td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td><td></td></tr>
<tr><td>Escribir un nombre de proyecto, una URL, una opción de una lista</td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td><td></td></tr>
<tr><td>Escribir tu contraseña o el código de tu móvil</td><td><span class="blog-no" role="img" aria-label="No">✗</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr>
<tr><td>Introducir datos de tarjeta, bancarios o de identidad</td><td><span class="blog-no" role="img" aria-label="No">✗</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr>
<tr><td>Marcar las condiciones, pulsar «Pagar» o «Realizar pedido»</td><td><span class="blog-no" role="img" aria-label="No">✗</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr>
<tr><td>Leer la nueva clave de API y guardarla en <code>.env</code></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td><td></td></tr></tbody></table></div>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Nota"><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>La línea la hace cumplir la app</span></p><p>No son sugerencias en un prompt. La app rechaza cualquier intento del agente de cruzar la línea; no puede saltársela con argumentos.</p>
</aside>
<h2 id="cómo-transcurre-una-configuración-guiada">Cómo transcurre una configuración guiada</h2>
<p>El bucle es el mismo en todos los sitios, incluso en los que nadie ha escrito instrucciones.</p>
<div class="blog-steps"><ol>
<li><strong>Abrir la página.</strong> El agente abre una pestaña de navegador dentro de la app. Tus sesiones en ese navegador se mantienen entre reinicios, así que puede que ya estés dentro.</li>
<li><strong>Mirar antes de actuar.</strong> El agente pide un esquema de la página: una línea por cada título, botón, enlace, campo y frame. Los campos sensibles se listan por tipo —contraseña, tarjeta, banco, código de un solo uso, identidad— con «relleno» o «vacío», nunca con su valor.</li>
<li><strong>Hacer su parte.</strong> Hace clic, rellena campos corrientes y lee texto, volviendo a leer la página tras cualquier acción que la cambie.</li>
<li><strong>Pasarte tu parte.</strong> Cuando el siguiente paso te toca a ti, el agente muestra una tarjeta de guía en la página: un título corto, una instrucción concreta y un resaltado sobre el campo o botón al que se refiere. Haces el paso y pulsas <strong>Listo, te lo paso</strong>. Si te atascas, pulsas <strong>Necesito ayuda</strong> y escribes lo que ves; el agente responde en la página.</li>
<li><strong>Esperar en el mismo turno.</strong> Mientras hay una guía en pantalla, el agente te espera. Sus clics y su escritura se rechazan hasta que le devuelvas la página, y puedes pulsar <strong>Parar / tomar el control</strong> en cualquier momento.</li>
<li><strong>Llevarse el resultado.</strong> Cuando la página muestra lo que venías a buscar —una clave de API, un token, un secreto de webhook—, el agente lo lee como secreto y lo guarda donde corresponde, por ejemplo en el <code>.env</code> del proyecto. Informa de <em>dónde</em> está la clave, no de la clave.</li>
</ol>
</div>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/ce0b4fa570f4e1ad99a6-light.svg" width="1056" height="481" alt="Una configuración guiada, de la primera página a la clave guardada" loading="lazy" decoding="async"><figcaption>Una configuración guiada, de la primera página a la clave guardada</figcaption></figure>
<p>Al terminar, puedes comprobar el resultado sin mostrar ningún secreto en pantalla:</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="reglas-que-impone-la-app">Reglas que impone la app</h2>
<p>Son comprobaciones dentro de la app, y el agente no puede desactivarlas:</p>
<ul>
<li><strong>Ni entran secretos ni salen secretos.</strong> El agente no puede escribir en un campo de contraseña, tarjeta, CVC, IBAN, código de un solo uso o identidad. Cuando lee la página o toma una instantánea, esos valores están ocultos y se eliminan de cualquier texto que lea.</li>
<li><strong>Las capturas se tapan.</strong> Los campos sensibles y cada frame de otro origen —un widget de tarjeta, un recuadro de «Iniciar sesión con Google»— se cubren antes de que un agente vea una imagen.</li>
<li><strong>Sin scripts en páginas sensibles.</strong> Ejecutar JavaScript en la página se rechaza en cualquier página que muestre uno de esos campos.</li>
<li><strong>El consentimiento y el pago son tuyos.</strong> Hacer clic en una casilla de condiciones o en un botón de «Pagar» / «Realizar pedido» se rechaza.</li>
<li><strong>Todo es visible.</strong> Lo que hace el agente en el panel de navegador se te muestra en el banner del panel mientras ocurre.</li>
<li><strong>Los secretos se quedan fuera de la conversación.</strong> Un valor leído como secreto se marca como sensible, y al agente se le indica que nunca lo repita en el chat, en informes, en notas de tareas ni en notificaciones.</li>
</ul>
<aside class="blog-callout blog-callout-warning" role="note" aria-label="Advertencia"><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>Advertencia</span></p><p>Aprobar un pago o aceptar condiciones es siempre tu clic. Si un proceso no puede seguir sin ello, el agente te pasa la página y espera.</p>
</aside>
<h2 id="cualquier-sitio-web-no-una-lista-de-integraciones">Cualquier sitio web, no una lista de integraciones</h2>
<p>La configuración guiada es un bucle, no una biblioteca de scripts. Funciona en un sitio para el que nadie ha escrito pistas, porque el agente lee la página que tiene delante. Para algunos servicios incluimos breves archivos de pistas —por ejemplo, el panel sandbox de Paddle y RevenueCat— que le dicen al agente dónde suelen estar los ajustes para desarrolladores. Los paneles mueven sus menús constantemente, así que las pistas lo dicen claro: si la página y la pista no coinciden, manda la página.</p>
<p>Esto importa más de lo que parece. El código de integración que escribe un agente es solo la mitad de una funcionalidad; la otra mitad es la cuenta, la clave y el webhook en el sitio web de otro. Con la configuración guiada, ambas mitades ocurren en la misma sesión, con el mismo agente, y tú dedicas tu tiempo solo a los pasos que solo tú puedes hacer.</p>
<h2 id="dónde-encaja">Dónde encaja</h2>
<p>La configuración guiada forma parte del mismo espacio de trabajo que todo lo demás en SuperDevSpace: el agente que escribe tu integración de pagos es el mismo que te acompaña a crear sus claves, en un panel de navegador junto a su terminal. Si eres nuevo por aquí, <a href="https://superdevspace.com/es/blog/por-que-creamos-superdevspace">por qué creamos SuperDevSpace</a> explica el resto del equipo que lo rodea.</p>
<h2 id="pruébalo">Pruébalo</h2>
<p>La prueba dura 14 días de Premium, sin tarjeta. <a href="https://superdevspace.com/download">Descarga SuperDevSpace</a>, pídele a un agente que configure un proveedor de pagos o de analítica para tu proyecto y deja que te pase la página cuando te toque.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Agentes de código en paralelo con git worktrees</title>
      <link>https://superdevspace.com/es/blog/agentes-de-codigo-en-paralelo-con-git-worktrees</link>
      <guid isPermaLink="true">https://superdevspace.com/es/blog/agentes-de-codigo-en-paralelo-con-git-worktrees</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>Cómo SuperDevSpace separa varios agentes en un mismo repositorio: un git worktree y una rama por worker, commits por turno y squash merges.</description>
      <content:encoded><![CDATA[<p>Ejecuta dos agentes de código en el mismo checkout y descubrirás enseguida por qué los equipos de software usan ramas. Un agente renombra un módulo mientras el otro ejecuta la suite de tests contra la mitad de ese renombrado. Uno añade al stage archivos que el otro acaba de borrar. Ninguno se equivoca; simplemente comparten escritorio.</p>
<p>SuperDevSpace ejecuta un manager y varios workers sobre un mismo repositorio a la vez. Este artículo explica el mecanismo que los mantiene separados —los git worktrees— y las reglas exactas que sigue la app con ellos.</p>
<h2 id="qué-es-un-git-worktree">Qué es un git worktree</h2>
<p>Un repositorio git tiene normalmente un único directorio de trabajo. <code>git worktree</code> permite que un mismo repositorio tenga varios, cada uno en su propia rama, todos compartiendo la misma base de objetos. No hay un segundo clon ni una segunda copia del historial: un worktree nuevo cuesta los archivos de un checkout y nada más.</p>
<p>Puedes probarlo a mano en cualquier repositorio. Los comandos son los mismos en todas partes; solo cambia el shell:</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>Cada worktree tiene su propio <code>HEAD</code>, su propio índice y sus propios archivos. Dos procesos pueden editar, compilar y testear en dos worktrees a la vez sin ver los cambios a medias del otro. Es justo la propiedad que necesita un equipo de agentes.</p>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Nota"><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>Nota</span></p><p>Eliminar un worktree no borra su rama. Los commits siguen en el repositorio hasta que borres la rama tú mismo.</p>
</aside>
<h2 id="cómo-los-usa-superdevspace">Cómo los usa SuperDevSpace</h2>
<p>Las reglas son sencillas y las mismas para todas las organizaciones:</p>
<ul>
<li><strong>El manager trabaja en tu checkout principal.</strong> Planifica, revisa y fusiona; es el único lugar donde se juntan las ramas.</li>
<li><strong>Cada worker recibe su propio worktree en su propia rama.</strong> Cuando el manager contrata a un worker, la app ejecuta <code>git worktree add -b &lt;rama&gt; &lt;ruta&gt;</code> para él. La rama se llama <code>agent/&lt;nombre-del-worker&gt;-&lt;marca&gt;</code> salvo que tú le hayas dado un nombre.</li>
<li><strong>Los worktrees viven en la carpeta de datos de la app</strong>, en <code>worktrees/&lt;organización&gt;/&lt;worker&gt;</code>, nunca dentro de tu repositorio. Tu carpeta de proyecto no se llena de directorios de agentes.</li>
<li><strong>Cada turno se commitea.</strong> Cuando un worker termina un turno, la app hace commit de todo lo que cambió en su worktree (<code>agent(&lt;nombre&gt;): turn</code>). Nada de lo que hizo un worker queda solo en un directorio de trabajo sin commitear.</li>
<li><strong>La fusión es un squash merge.</strong> Cuando el manager acepta el informe de un worker, la rama se fusiona en tu línea con <code>git merge --squash</code> y un solo commit. Si hay conflicto, la app aborta la fusión y deja el repositorio limpio para la siguiente operación, en lugar de dejarte en mitad de un merge con conflictos.</li>
<li><strong>Una operación de git a la vez por repositorio.</strong> Los directorios de los worktrees aíslan los archivos; una cola por repositorio serializa los propios comandos de git, así que dos workers que terminan en el mismo instante nunca compiten por los metadatos de git.</li>
</ul>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/0495b8bd6020893313bb-light.svg" width="471" height="268" alt="Dos workers, dos ramas, dos squash merges" loading="lazy" decoding="async"><figcaption>Dos workers, dos ramas, dos squash merges</figcaption></figure>
<p>En el tablero, esto se ve como varias tareas en curso a la vez, cada una de un worker distinto, cada una con su propia rama debajo.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/board-sprint.webp" alt="Un tablero de sprint con tareas repartidas entre por hacer, en curso, esperando aprobación, en revisión y hecho" loading="lazy" decoding="async"><figcaption>Tareas avanzando en paralelo en el tablero de una organización, cada worker en su propia rama (app real, en turco).</figcaption></figure>
<h2 id="lo-que-lo-hace-práctico">Lo que lo hace práctico</h2>
<p>Un worktree recién creado solo contiene lo que git rastrea. Eso no suele bastar para ejecutar un proyecto: <code>node_modules</code>, un <code>.env</code> local, archivos generados. Dos detalles lo resuelven.</p>
<h3 id="un-script-de-preparación-por-repositorio">Un script de preparación por repositorio</h3>
<p>Si tu repositorio tiene <code>.super/scripts/setup-worktree.sh</code>, la app lo ejecuta dentro de cada worktree nuevo antes de que arranque el worker, con <code>SUPERDEV_MAIN_REPO</code> apuntando a tu checkout principal. Su salida se muestra en directo —una instalación larga no es una espera a ciegas— y puedes cancelarlo.</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"># Copiar archivos solo locales desde el checkout principal</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"># Instalar dependencias (pnpm enlaza desde un store compartido, así que es rápido)</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="Consejo"><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>Mantén rápido el script de preparación</span></p><p>El worker solo arranca cuando el script termina, y un script que falla detiene el arranque en lugar de dejar que un agente trabaje en un árbol a medio preparar. Un gestor de paquetes con store compartido hace que cada worktree nuevo salga barato.</p>
</aside>
<h3 id="submódulos">Submódulos</h3>
<p><code>git worktree add</code> deja los submódulos vacíos. Si el worktree nuevo tiene un archivo <code>.gitmodules</code>, la app ejecuta en él <code>git submodule update --init --recursive</code>, para que ningún worker compile contra una dependencia que falta sin avisar.</p>
<h2 id="limpiar-sin-perder-trabajo">Limpiar sin perder trabajo</h2>
<p>Los worktrees se acumulan. La app los recupera, pero con cautela:</p>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/1d26ee18201fe422f741-light.svg" width="468" height="768" alt="Cuándo se puede eliminar el worktree de un worker" loading="lazy" decoding="async"><figcaption>Cuándo se puede eliminar el worktree de un worker</figcaption></figure>
<p>Un worktree con cambios sin commitear, o con una rama que tiene trabajo que aún no está en tu línea, se queda donde está. Una carpeta borrada se puede recrear; el trabajo perdido, no. La misma cautela se aplica a las ramas: la app lleva la cuenta de las ramas que creó y solo toca esas.</p>
<h2 id="qué-cambia-para-ti">Qué cambia para ti</h2>
<p>Con cada worker en su propia rama, «ejecutar cuatro agentes a la vez» deja de ser una apuesta. Puedes:</p>
<ul>
<li>dar al manager una directiva que se divide en tareas independientes y dejar que los workers trabajen en paralelo;</li>
<li>leer el diff de cualquier worker por separado, junto a la conversación que lo produjo;</li>
<li>rechazar el cambio de un worker sin molestar a los demás;</li>
<li>seguir usando tu checkout principal mientras el equipo trabaja.</li>
</ul>
<p>Es la misma disciplina que usa un equipo humano, aplicada a agentes que no pueden avisarte de que están a punto de pisarse. Si te preguntas por qué construimos toda una app alrededor de esto, el <a href="https://superdevspace.com/es/blog/por-que-creamos-superdevspace">primer artículo</a> cuenta la historia.</p>
<h2 id="pruébalo">Pruébalo</h2>
<p>La prueba de 14 días es Premium, sin tarjeta. <a href="https://superdevspace.com/download">Descarga SuperDevSpace</a>, apunta una organización nueva a un repositorio y mira cómo aparecen los worktrees a medida que el manager contrata a sus primeros workers.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Por qué creamos SuperDevSpace: un equipo de IA con tu propia suscripción de CLI</title>
      <link>https://superdevspace.com/es/blog/por-que-creamos-superdevspace</link>
      <guid isPermaLink="true">https://superdevspace.com/es/blog/por-que-creamos-superdevspace</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>Un manager planifica y los workers construyen, cada uno en su terminal y su git worktree, con la CLI de agentes que ya pagas. Por qué lo creamos.</description>
      <content:encoded><![CDATA[<p>Si ya pagas una CLI de agentes como Claude Code, tienes más capacidad de la que una sola ventana de terminal te deja aprovechar. El modelo sabe planificar, escribir código, ejecutar tests y explicar lo que hace. Lo que no puede hacer por sí solo es ser cinco personas a la vez, llevar la cuenta de quién hace qué y entregarte un informe honesto al final del día.</p>
<p>Por ese hueco creamos SuperDevSpace. Es una app de escritorio que convierte la CLI que ya tienes en un pequeño equipo: un manager que planifica el trabajo y workers que lo hacen, cada uno en su propio terminal y su propio git worktree.</p>
<aside class="blog-callout blog-callout-note" role="note" aria-label="Nota"><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>Vendemos la orquesta, no los músicos</span></p><p>SuperDevSpace no vende modelos ni tokens. Controla la CLI de agentes que ya pagas, bajo tu propio acuerdo con su proveedor.</p>
</aside>
<h2 id="el-problema-de-un-agente-en-un-terminal">El problema de un agente en un terminal</h2>
<p>Trabajar con un solo agente de código es una maravilla para una sola tarea. Se desmorona en cuanto tienes tres cosas que hacer en el mismo repositorio:</p>
<ul>
<li>Puedes abrir un segundo terminal, pero entonces ambos agentes editan el mismo checkout. Uno ejecuta la suite de tests mientras el otro está a mitad de un refactor.</li>
<li>Te conviertes en el jefe de proyecto. Tú repartes el trabajo, tú recuerdas qué terminal tenía qué tarea, tú copias el contexto de una sesión a otra.</li>
<li>Nadie apunta lo que pasó. Cuando vuelves de comer, el único registro es el scrollback del terminal.</li>
</ul>
<p>Nada de esto es un problema del modelo. Es un problema de organización, y la organización es algo que el software hace bien.</p>
<div class="table-scroll"><table><thead><tr><th></th><th>Un agente, un terminal</th><th>Una organización de SuperDevSpace</th></tr></thead><tbody><tr><td>Trabajo en paralelo sin choques</td><td><span class="blog-no" role="img" aria-label="No">✗</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr>
<tr><td>Un worktree y una rama por worker</td><td><span class="blog-no" role="img" aria-label="No">✗</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr>
<tr><td>Trabajo dividido en tareas en un tablero</td><td><span class="blog-no" role="img" aria-label="No">✗</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr>
<tr><td>Un informe escrito por tarea</td><td><span class="blog-no" role="img" aria-label="No">✗</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr>
<tr><td>Revisas el diff antes de que entre</td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr>
<tr><td>Funciona con la CLI que ya pagas</td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td><td><span class="blog-yes" role="img" aria-label="Sí">✓</span></td></tr></tbody></table></div>
<h2 id="qué-hace-realmente-superdevspace">Qué hace realmente SuperDevSpace</h2>
<p>En SuperDevSpace cada repositorio es una <strong>organización</strong>. Cada organización tiene un <strong>manager</strong>: una sesión real de una CLI de agentes, en un terminal real que puedes ver y en el que puedes escribir. Le das al manager una directiva en lenguaje natural, escribiéndola o dictándola por voz.</p>
<figure class="blog-diagram" data-diagram><img class="blog-diagram-img blog-diagram-light" src="https://superdevspace.com/blog/diagrams/ab7119789c2092c45aa6-light.svg" width="493" height="640" alt="Cómo una directiva se convierte en trabajo fusionado" loading="lazy" decoding="async"><figcaption>Cómo una directiva se convierte en trabajo fusionado</figcaption></figure>
<p>Después, el manager hace lo que haría un líder de equipo:</p>
<div class="blog-steps"><ol>
<li><strong>Planificar.</strong> Abre un sprint y divide la directiva en tareas en un tablero, cada una con un brief breve.</li>
<li><strong>Contratar.</strong> Contrata workers para esas tareas. Cada worker es otra sesión real de la CLI en su propia pestaña de terminal visible, con un rol: desarrollador frontend, ingeniero de QA, etc.</li>
<li><strong>Aislar.</strong> Cada worker recibe su propio git worktree en su propia rama, así el trabajo en paralelo nunca choca en un mismo checkout. Un artículo aparte explica <a href="https://superdevspace.com/es/blog/agentes-de-codigo-en-paralelo-con-git-worktrees">cómo funciona</a>.</li>
<li><strong>Revisar.</strong> Cuando un worker termina, entrega un informe. El manager lo revisa, fusiona la rama y pide correcciones si algo no está bien.</li>
<li><strong>Informar.</strong> Recibes un único informe consolidado en lugar de cinco scrollbacks.</li>
</ol>
</div>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/team-roles.webp" alt="El diálogo «Añade tus agentes»: una cuadrícula de roles como frontend, backend, ingeniero de QA, revisor de código, diseñador y DevOps, con un campo de nombre e instrucciones opcionales" loading="lazy" decoding="async"><figcaption>Elegir el rol de un worker al montar el equipo (app real, en turco).</figcaption></figure>
<p>Puedes intervenir cuando quieras. Cada agente tiene una vista de chat y su terminal real —una sesión, dos formas de verla— y cada cambio aparece como un diff junto a la conversación que lo produjo, para que lo revises antes de que llegue a tu línea principal.</p>
<figure class="blog-figure"><img src="https://superdevspace.com/blog/shots/board-sprint.webp" alt="El tablero de sprint de una organización con columnas de backlog, por hacer, en curso, esperando aprobación, en revisión y hecho, y tarjetas de tareas etiquetadas por carril" loading="lazy" decoding="async"><figcaption>El tablero de sprint de una organización de demostración mientras trabaja su equipo (app real, en turco).</figcaption></figure>
<h2 id="tu-suscripción-tu-máquina-tu-código">Tu suscripción, tu máquina, tu código</h2>
<p>La decisión de diseño más importante es también la más sencilla: <strong>SuperDevSpace controla una CLI que ya pagas.</strong> Nunca revendemos acceso a modelos, así que nada de lo que ejecutas aparece en una factura nuestra más allá de la propia suscripción a SuperDevSpace.</p>
<p>Esa decisión tiene consecuencias que nos gustan:</p>
<ul>
<li><strong>Los agentes se ejecutan como procesos locales en tu máquina</strong>, sobre tus repositorios locales. Tu código fuente, tus prompts, la salida del terminal y las rutas de tus archivos nunca se envían a nuestros servidores. Nuestro servicio de cuentas guarda una cuenta, un estado de suscripción y una lista de dispositivos.</li>
<li><strong>Eliges la CLI por organización.</strong> Claude Code, OpenAI Codex, Gemini CLI, Aider, Qwen Code, Cursor CLI y OpenCode se pueden seleccionar. Claude Code es la que la app domina hoy: hooks, reanudación, herramientas MCP, respuestas a permisos. Las otras seis arrancan y funcionan; la app las marca como experimentales y te dice qué extras aún no están conectados en lugar de fallar en silencio.</li>
<li><strong>Nada queda encerrado en nuestra nube</strong>, porque no hay ninguna nube haciendo el trabajo.</li>
</ul>
<p>Antes de la primera directiva, conviene comprobar que la CLI y el repositorio están donde esperas:</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/tu-proyecto</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="lo-que-rodea-al-equipo">Lo que rodea al equipo</h2>
<p>Un equipo necesita algo más que terminales. Algunas cosas que vienen con todos los planes:</p>
<ul>
<li><strong>Un tablero que dice la verdad.</strong> Sprints, tareas, briefs e informes. Un informe dice qué falló, no solo qué salió bien.</li>
<li><strong>Inspector.</strong> Haz clic en un elemento de tu página web en ejecución y envíalo a un agente con el componente, el archivo y la línea. Funciona con Vite, Next.js y sitios estáticos.</li>
<li><strong>Aprobaciones desde el móvil.</strong> Cuando un agente necesita una decisión, te la pide. La app del móvil muestra el tablero, los agentes y las aprobaciones pendientes, para que respondas a una petición de permiso lejos de tu mesa.</li>
<li><strong>Una pizarra por organización</strong> (Excalidraw) que los agentes pueden leer y en la que pueden dibujar.</li>
</ul>
<figure class="blog-figure blog-figure-video"><video class="blog-video" muted loop playsinline controls preload="metadata" data-autoplay aria-label="Un bucle corto y sin sonido del recorrido del producto: crear una organización y sus primeros pasos"><source src="https://superdevspace.com/media/superdevspace-tanitim-loop.mp4" type="video/mp4"></video><figcaption>Unos segundos del recorrido real del producto (app en turco).</figcaption></figure>
<p>Premium añade las piezas que llegan más lejos: un modo de diseño basado en Penpot con un agente Designer que dibuja en el archivo, programaciones que ejecutan directivas según un calendario y un enlace entre pares que permite a un manager en tu Mac pasar trabajo a un manager en tu PC con Windows. La <a href="https://superdevspace.com/pricing">página de precios</a> tiene la comparación completa.</p>
<h2 id="lo-que-no-prometemos">Lo que no prometemos</h2>
<aside class="blog-callout blog-callout-warning" role="note" aria-label="Advertencia"><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>Precisos antes que impresionantes</span></p><p>SuperDevSpace no hace al modelo más inteligente; le da una estructura en la que trabajar. Funciona en macOS (Apple silicon) y Windows (64 bits); Linux aún no tiene fecha, y no nos la vamos a inventar.</p>
</aside>
<p>Un equipo de agentes sigue necesitando un jefe: tú decides qué se construye y tú apruebas lo que llega a tu rama principal.</p>
<h2 id="pruébalo">Pruébalo</h2>
<p>La prueba dura 14 días de Premium, sin tarjeta. Tu suscripción a la CLI sigue siendo tuya, y tu código también. Si quieres ver al equipo trabajando en tu propio repositorio, <a href="https://superdevspace.com/download">descarga SuperDevSpace</a> y dale al manager su primera directiva.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
