Releases: dforce2055/dai
Release list
v0.5.0 — dai archive (gate de aprobación)
archive en el flujo (ADR-0011): cerrar el CÓMO del lado de las specs canónicas, atado a la aprobación de la PR.
Agregado
dai archive [<change>]: funde los delta specs del change en las specs canónicas (openspec/specs/) y lo archiva. Lo corre el aprobador de la PR, en la branch, al aprobar → el fold viaja en la PR (elude la base protegida). Detecta el change activo por suimplements.yamlo le pasás el nombre; envuelveopenspec archive --yes. Comando, no skill. Flag--skip-specs.
Cambiado
dai checkydai lssalteanopenspec/changes/archive/: un change shippeado ya no genera⚠️ de drift falso ni aparece en el listado.
Interno
- 110 tests (+1).
Instalación: npm i -g @dforce2055/dai
What's Changed
- feat: dai archive — gate de aprobación (ADR-0011) by @dforce2055 in #11
- chore(release): v0.5.0 by @dforce2055 in #12
Full Changelog: v0.4.0...v0.5.0
v0.4.0 — versionado y upgrade (dai sync + version-drift)
Versionado y upgrade (ADR-0010): mantené tu repo al día con el CLI sin pisar nada. Las copias scaffoldeadas (skills, constitución, templates) son un caché derivable — ahora la máquina te avisa cuando quedaron atrás y las refresca sola.
Agregado
dai sync: refresca skills, constitución, templates y PR template a la versión del CLI — aditivo (conserva tuCLAUDE.mdpropio), sin tocar el.envni OpenSpec. Detecta los asistentes del repo o acepta--for;--dry-runmuestra qué cambiaría.dai doctor· version-drift: avisa con color +⬆️cuando el scaffold del repo quedó atrás del CLI (minor → refresh opcional; major → migrar; repo más nuevo → actualizar el CLI).dai version: chequeo liviano de versión + drift (dai --versionfuera de un repo dai queda limpio).lib/semver.mjs(cero dependencias).
Interno
- Golden vectors de
ac_hash: inmutables dentro de la línea major — blindan el contrato (ADR-0001). - 109 tests (+4 desde 0.3.1).
Diferido a un futuro major (ya diseñado):
dai migrate+MIGRATION.mdy estamparschema:enimplements.yaml.
Instalación: npm i -g @dforce2055/dai
What's Changed
- docs(onboarding): agregar enlaces para obtener token de Jira y ClickUp by @dforce2055 in #7
- docs(onboarding): agregar enlaces para obtener token de Jira y ClickUp by @dforce2055 in #8
- feat: versionado y upgrade — dai sync + doctor version-drift (ADR-0010) by @dforce2055 in #9
- chore(release): v0.4.0 by @dforce2055 in #10
Full Changelog: v0.3.1...v0.4.0
v0.3.1 — UX de init/link-us + ejemplo de US
Pulido de la experiencia de dai init y dai link-us, y un ejemplo de US listo para probar.
Corregido
dai init·.env.example: refleja el--pmelegido — incluye el token del tracker, no el template genéricomd.dai init·--forcon espacio: mensaje claro cuando--for claude, cursorhace que la shell parta la lista ycursorcaiga como<repo>.dai link-us·dai ac-hash: mensaje accionable cuando la US no tiene sección 'Criterios de aceptación'.
Agregado
templates/formato-us.md: ejemplo de US copy-paste para probar el flujo en 30s, con o sin tracker.
Instalación: npm i -g @dforce2055/dai
What's Changed
- chore(release): v0.3.1 by @dforce2055 in #6
Full Changelog: v0.3.0...v0.3.1
v0.3.0 — init aditivo + onboarding
dai init ahora es aditivo: no pisa la configuración de un repo funcional. Más robustez en el parser de .env y en doctor, y buenas prácticas agnósticas en la constitución.
Cambiado
dai initaditivo y no destructivo:.env/.env.examplemergean solo las claves que faltan;CLAUDE.md/copilot-instructions.mdreciben la constitución como bloque delimitado e idempotente (conserva la constitución previa del proyecto); el.gitignorese reconcilia (versiona.claude/skills/y.claude/commands/, deja fuera solosettings.local.json).- Constitución: nuevas reglas agnósticas (verificar el comportamiento ≠ que compile, la IA confirma antes de construir, docs vivas) + sección "Buenas prácticas". Tono "tú" neutro.
Corregido
- Parser de
.env: un token con comentario inline al lado ya no rompe el headerAuthorization(error de ByteString). dai doctor: ya no lista.DS_Storecomo skill.
Interno
- 104 tests (+11). El sitio sale del paquete npm; nueva página de onboarding del dev (
onboarding.html) en GitHub Pages.
Instalación: npm i -g @dforce2055/dai
v0.2.0 — Cursor + --for combinable
Soporte para Cursor como asistente y un --for combinable. Incluye la primera
contribución de la comunidad 🎉 (@sermati).
Agregado
- Adaptador de Cursor (ADR-0009, aporte de la
comunidad):dai init/install/doctorsoportan Cursor — generan
.cursor/skills/*/SKILL.mdy.cursor/rules/dai-constitution.mdc(regla always-on) desde
la misma fuenteskills/*/SKILL.md. --forcombinable: acepta subconjuntos de asistentes (--for claude,cursor,
--for copilot), además deboth(Claude+Copilot) yall(los tres). Nuevo
parseAssistants()enargs.mjs.
Cambiado
- Default de
dai init=all(Claude + Copilot + Cursor) — deja el repo listo para
cualquier asistente. - El mensaje de "próximos pasos" de
dai initapunta a la URL online de la guía
PROBAR.md(antes una ruta local que el usuario instalado no encontraba).
Interno
- 93 tests (+6 desde 0.1.1:
skillToCursor,constitutionCursorRule,parseAssistants).
v0.1.1 — dai
Solo documentación y metadata — el CLI no cambia (mismo ac_hash, mismo protocolo).
Cambiado
homepagedel paquete → el sitio de GitHub Pages (dforce2055.github.io/dai).- Badge de npm activado en el README (tras el primer publish).
- Conteo de tests corregido en
RELEASING.md(48 → 87).
v0.1.0 — dai
Primera versión: metodología completa + CLI de trazabilidad, probado end-to-end contra
ClickUp y Jira Cloud.
Metodología
- Manifiesto (constitución: 4 valores + 15 artículos), METODOLOGIA (protocolo invariante
- dial de niveles N1/N2/N3), SCRUM-CON-IA (los 10 pasos, con
detalle/), EJEMPLO
end-to-end, glosario, guías por rol (PO/dev/lead), landing autocontenido (index.html).
- dial de niveles N1/N2/N3), SCRUM-CON-IA (los 10 pasos, con
- 7 ADRs:
ac_hash, agnóstico del asistente, detección/estampado como comandos,
ubicación+schema delimplements.yaml, superficie de comandos, distribución+licencia,
modelo de autenticación.
Templates y governance
formato-us,epica,definition-of-ready,definition-of-done,adr,
pull-request, hookcommit-msg;branch-naming,ci-rules,commit-convention.
Skills (para Claude y Copilot, generadas por dai init)
- El QUÉ:
doc-to-backlog(un doc → backlog candidato),grill-intent(Gate 0),
grill-epic(épicas),grill-user-story(la US — detecta el tracker del.envy publica). - El CÓMO:
link-us,tdd,dai-review.
CLI (dai, Node, cero dependencias)
- Definir el QUÉ:
publish(crea la US en el tracker desde un.md). - Trazabilidad:
link-us(+--resync),check,stamp,ls,ac-hash. - PR y cierre:
pr(crea la PR precargada),forge(comentar/leer PR en GitHub/GitLab),
done(cierra la US: vuelve a la base, actualiza y borra la branch). - Setup:
init(scaffolder interactivo: asistente + tracker + OpenSpec),install,
docs,doctor. - Adaptador de tracker:
md,jira(ADF, Jira Cloud),clickup. Auth por SSH (git) +
token scopeado (forge/tracker), nunca contraseñas. - 87 tests (
node --test), cero dependencias de runtime.
Distribución y comunidad
- Licencia GPLv3. Publicable en npm (scopeado);
install.shcomo shim de git-clone. SECURITY.md,CODE_OF_CONDUCT.md,CONTRIBUTING.md,.editorconfig,.nvmrc,
.gitattributes, templates de PR/issue, CI de GitHub Actions (Node 18/20/22).- Tests de las rutas de red (jira/clickup/forge) con
fetchmockeado. Sin links rotos;
filesde npm sin tests ni secretos.