La IA programa. @dai te da la trazabilidad.

Un método —y un CLI— para desarrollo asistido por IA sin vibe coding y con trazabilidad real: separa el QUÉ del CÓMO, linkéalos una sola vez, y deja que la máquina avise sola cuando se desincronizan. De un dev solo a una organización entera — el mismo método.

Empezar ahora Ver en GitHub Ver en npm
# instala el CLI (Node ≥18, cero dependencias)
npm i -g @dforce2055/dai
dai init # configura tu repo: Claude/Copilot + OpenSpec + el link

El problema

La IA acelera el código. Y también acelera el caos.

Tres dolores que la IA no resuelve sola — al contrario, los amplifica si no hay método.

🔌

Desincronización silenciosa

El requerimiento cambia, el código sigue con la versión vieja, y se descubre recién en la demo. Nadie se enteró a tiempo.

🎲

Vibe coding

La IA construye sobre una idea vaga y sale cualquier cosa. Rápido, sí — pero sin garantía de que sea lo que se pedía.

🔀

QUÉ y CÓMO mezclados

El funcional se mete en la implementación; el dev redefine el negocio. Se pierde quién es dueño de qué.

La idea

Separa el QUÉ del CÓMO. Linkéalos una sola vez.

El requerimiento (el QUÉ) y la implementación (el CÓMO) son cosas distintas, con dueños distintos. dai las mantiene atadas — y la dirección inversa se deriva, nunca se escribe a mano.

EL QUÉ · funcional

La User Story

dueño: PO / analista · vive en Jira o ClickUp

  • Criterios de aceptación testeables
  • Lo produce una skill de IA por interrogación
  • Identidad estable: el ticket del tracker
EL CÓMO · técnico

El código + su spec

dueño: dev / ingeniero · vive en el repo

  • Declara implements: US@versión — una vez
  • Diseño y tareas generados con OpenSpec
  • Se construye con tests primero (TDD)
1

Identidad estable

El QUÉ nace con un ID único (el ticket). Es lo único que lo hace linkeable.

2

Un solo link, a mano

El código apunta al QUÉ. La cobertura inversa (quién implementó qué) la genera la máquina.

3

@version que grita

Número legible + hash de criterios. Si el QUÉ cambia, los CÓMO atrasados se marcan solos.

El flujo

Tu Scrum de siempre — con IA en cada paso

dai no reemplaza tu proceso: lo potencia. En cada etapa hay una skill de IA o un comando que hace el trabajo pesado. QUÉ CÓMO máquina

1

Define el QUÉ

El analista describe la idea. Una skill de IA lo interroga hasta que la User Story es testeable, y la publica en el tracker. La IA no inventa: pregunta.

/grill-intent → /grill-user-story → ClickUp / Jira
2

Abre el CÓMO, atado al QUÉ

El dev arranca la implementación. dai trae la US del tracker, crea la branch y siembra el link — correcto por construcción, sin tipear el ID a mano.

dai link-us <ID> → branch + implements.yaml
3

Diseña con OpenSpec

OpenSpec toma la US y genera la propuesta, el diseño y las tareas — co-localizados con el link, en la misma branch. El QUÉ se convierte en un plan técnico.

/opsx:propose → proposal · design · tasks
4

Implementa con tests primero

TDD en rebanadas verticales: un test, el código mínimo, repetir. La IA escribe el test como spec ejecutable. Anti vibe-coding de verdad.

/tdd · red → green → refactor
5

Verifica la trazabilidad

¿Tu código sigue al día con la US? dai re-deriva el hash de la US viva y compara. Si el QUÉ cambió, te avisa y te dice cómo resincronizar.

dai check → ✅ al día / ⚠️ atrasado
6

Crea y revisa la PR

dai arma el texto de la PR desde el template, precargado con la US, el estado del check y los enlaces. Tu PR la revisas tú; la de un compañero, con la skill de review.

dai pr · /dai-review (la PR de otro)
7

Mergea y estampa la cobertura

Al mergear, dai escribe en el tracker quién implementó qué, contra qué versión, con branch y commit. La trazabilidad inversa — nadie la mantiene a mano.

dai stamp → cobertura en el tracker

La pieza que lo cambia todo

Cuando el QUÉ cambia, el desajuste se hace visible solo

El PO edita un criterio en el tracker. Tú no tocaste una línea de código. Y aun así, dai lo detecta — porque compara el hash de la US viva contra el que dejaste estampado.

$ dai check ✅ 86ajcjwzk al día (v1) # … el PO agrega un criterio de aceptación en el tracker … $ dai check ⚠️ 86ajcjwzk ATRASADO: implementaste 2124e94f, la US viva es 51abbfa0 El QUÉ cambió desde que lo implementaste. Para resincronizar: dai link-us 86ajcjwzk --resync # re-estampa contra la US viva

Nadie le avisó al dev. El link versionado lo avisó solo. Esa es la diferencia entre esperar que alguien se dé cuenta y que el sistema te lo diga.

Un solo método

Se adapta a cualquier tamaño de equipo

No hay una versión para equipos chicos y otra para grandes. Hay un protocolo invariante y un dial de ceremonia que sube o baja según la escala. Cada capa se agrega cuando duele, no antes.

NIVEL 1

Un dev solo

OpenSpec y el CLI, todo local. La US puede vivir como un .md. Cero infraestructura. El link y el check funcionan igual.

NIVEL 2

Equipo compacto

Aparece el tracker (ClickUp/Jira) para coordinar. El link referencia la US; el check y el stamp corren a mano o en un hook.

NIVEL 3

Organización grande

Muchos repos, equipos separados, CI que estampa cobertura y matriz de ambientes. El mismo protocolo, con más plomería.

El dev que aprende el nivel chico ya sabe el grande. Nadie mantiene dos metodologías.

Empezar

De cero a tu primera US trazada

Requiere Node ≥ 18. El CLI no tiene dependencias — anda incluso en redes corporativas cerradas.

  1. npm i -g @dforce2055/dai
    Instala el CLI. El comando queda dai.
  2. dai init
    Scaffolder interactivo: eliges asistente (Claude/Copilot), tracker (md/ClickUp/Jira) y si sumas OpenSpec. Deja el repo listo.
  3. dai link-us <ID>
    Trae la US del tracker, crea la branch y el link. Implementas con TDD.
  4. dai checkdai prdai stamp
    Verificas que sigues al día, creas la PR precargada, y al mergear estampas la cobertura. El círculo cerrado.