跳到正文
DEV Community· Pablo Silva·· 4 小時前AI 評分61

SDD 從零開始:如何不再把 Claude Code 生成的程式碼丟進垃圾桶

SDD desde cero: cómo dejé de tirar código de Claude Code a la basura

AI 導讀

Pablo Silva 分享如何以 SDD(規格驅動開發)避免 Claude Code 因需求含糊而寫出不合用的程式碼,做法是在編碼前先由人審批智能體提出的方案。OpenSpec 可在專案內保存提案、規格和任務,批准後智能體才開始編碼,並按驗收標準追蹤需求進度。他亦介紹自製的 Atalaya,將 SDD 整合至任務管理並透過 MCP 提交方案;該工具目前免費提供早期存取。

正文

Hace unos meses tiré a la basura dos días de trabajo de Claude Code.

No estaba mal hecho. Estaba muy bien hecho. El problema es que no era lo que hacía falta: le había pedido algo en una frase, se puso a programar y, cuando lo vi, ya era tarde.

Desde entonces trabajo con SDD (Spec-Driven Development, desarrollo guiado por especificaciones). Este artículo es lo que me habría gustado leer al empezar: qué es, por qué cambia tanto con agentes de código y cómo probarlo en una tarde.

El problema: el agente es rápido, pero no lee la mente

Un agente de código hace en minutos lo que antes llevaba días. Pero trabaja con lo que entiende de un mensaje. Si el encargo era ambiguo, construye otra cosa, y te das cuenta al revisar el código, cuando ya hay mil líneas.

Y hay un segundo problema que se ve menos: quien pidió el cambio (alguien de negocio, de soporte, un cliente) no tiene forma de saber cómo va. Pregunta en el chat, alguien mira el código, contesta «casi está».

La idea: primero se acuerda, después se programa

SDD es una regla sencilla: antes de tocar código, se escribe qué se va a construir y una persona lo aprueba.

Con agentes, ese papel lo escribe el propio agente. Tú solo lo lees y dices sí o no. El malentendido sale antes de programar, cuando arreglarlo cuesta una frase, y no después.

Las palabras que vas a oír

  • Requisito. Lo que tiene que poder hacer alguien cuando esté hecho, en palabras normales. «Quien gestiona descarga las facturas del mes en un fichero.»
  • Propuesta. El plan del agente: qué va a cambiar, por qué y qué queda fuera.
  • Criterio de aceptación. Cómo sabréis que está bien. «El fichero se abre en Excel con sus tildes.» Cada requisito tiene al menos uno.
  • Especificación. Cómo debe comportarse el sistema, escrito para que quede. El siguiente cambio parte de ahí.
  • Tareas. Los pasos del agente para hacerlo.
  • Aprobación. El sí de una persona. Sin él, el agente no programa.

Un ejemplo de principio a fin

  1. Marta pide algo: «Exportar las facturas del mes en CSV». Escribe tres requisitos: que quien gestiona pueda descargarlas, que se abran bien en Excel y que solo salgan las de su empresa.
  2. El agente escribe la propuesta. Lee la tarea y escribe qué va a cambiar, qué queda fuera y cómo se comprobará cada requisito.
  3. Alguien la aprueba o pide cambios. Hasta entonces, el agente no programa.
  4. El agente programa y prueba, y al terminar comprueba cada criterio de aceptación contra lo acordado.
  5. Marta lo ve llegar: cada requisito pasa de «sin empezar» a «en desarrollo», «probado» y «en producción».

¿No es más lento?

Añade una parada: aprobar. En mi caso son cinco minutos leyendo mientras tomo mate. A cambio, se programa una vez lo acordado y no varias veces lo malentendido.

No todo necesita SDD: un bug o una incidencia se arreglan y ya. SDD es para lo que cambia el comportamiento.

Cómo probarlo esta tarde (sin herramientas de pago)

La pieza base es OpenSpec, un formato abierto para que el agente escriba propuestas y especificaciones dentro de tu repositorio, en ficheros de texto.

npm install -g @fission-ai/openspec@latest
cd tu-proyecto
openspec init

A partir de ahí, en Claude Code le pides que proponga el cambio antes de implementarlo. Te deja en openspec/changes/ la propuesta, las especificaciones y las tareas. Lo lees, corriges lo que no cuadre y le dices que adelante.

Con esto ya tienes el 80 %: el agente piensa antes de programar y tú decides con el plan delante.

Lo que me faltaba (y por qué acabé construyendo algo)

OpenSpec resolvía mi parte. Pero la propuesta vivía en el repositorio, y quien pedía el cambio no la veía nunca. La aprobación era «lo leí y dije OK en el chat», y nadie fuera del terminal sabía en qué punto estaba cada requisito.

Por eso hice Atalaya, un gestor de trabajo (tareas, sprints, Kanban) con SDD dentro: los requisitos se escriben en la tarea, el agente informa su propuesta por MCP, una persona aprueba en la tarea (el agente no puede aprobarse solo) y cada requisito enseña su estado hasta producción. Las especificaciones siguen siendo ficheros de OpenSpec en tu repo: si un día lo dejas, se quedan contigo.

Está en acceso anticipado y es gratis. Pero lo importante del artículo no es la herramienta, es la regla: que el agente proponga y una persona decida antes de que se programe. Empieza con OpenSpec a pelo y verás la diferencia.


¿Cómo lo hacéis vosotros? ¿Revisáis lo que va a hacer el agente antes, o el código después? Me interesa mucho saber qué os funciona.

來源:DEV Community · dev.to