@dforce2055/dai 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/.env.example +30 -0
  2. package/CHANGELOG.md +46 -0
  3. package/CODE_OF_CONDUCT.md +37 -0
  4. package/CONTRIBUTING.md +66 -0
  5. package/LICENSE +674 -0
  6. package/README.md +288 -0
  7. package/SECURITY.md +37 -0
  8. package/VERSION +1 -0
  9. package/cli/dai.mjs +692 -0
  10. package/cli/lib/ac-hash.mjs +74 -0
  11. package/cli/lib/args.mjs +23 -0
  12. package/cli/lib/bootstrap.mjs +74 -0
  13. package/cli/lib/env.mjs +23 -0
  14. package/cli/lib/forge-api.mjs +96 -0
  15. package/cli/lib/forge-url.mjs +61 -0
  16. package/cli/lib/fsutil.mjs +24 -0
  17. package/cli/lib/implements.mjs +94 -0
  18. package/cli/lib/link-us.mjs +59 -0
  19. package/cli/lib/pm-adapter.mjs +59 -0
  20. package/cli/lib/pm-clickup.mjs +54 -0
  21. package/cli/lib/pm-jira.mjs +123 -0
  22. package/cli/lib/pr.mjs +53 -0
  23. package/cli/lib/us.mjs +36 -0
  24. package/docs/EJEMPLO-END-TO-END.md +330 -0
  25. package/docs/MANIFIESTO.md +114 -0
  26. package/docs/METODOLOGIA.md +254 -0
  27. package/docs/PROBAR.md +91 -0
  28. package/docs/SCRUM-CON-IA.md +190 -0
  29. package/docs/adr/0001-contrato-ac-hash.md +86 -0
  30. package/docs/adr/0002-agnostico-del-asistente.md +87 -0
  31. package/docs/adr/0003-deteccion-y-estampado-son-comandos.md +73 -0
  32. package/docs/adr/0004-ubicacion-y-schema-implements.md +94 -0
  33. package/docs/adr/0005-superficie-comandos-y-stamp.md +65 -0
  34. package/docs/adr/0006-distribucion-y-licencia.md +59 -0
  35. package/docs/adr/0007-modelo-de-autenticacion.md +63 -0
  36. package/docs/adr/README.md +19 -0
  37. package/docs/detalle/01-refinamiento.md +33 -0
  38. package/docs/detalle/02-planning.md +27 -0
  39. package/docs/detalle/03-ramas.md +32 -0
  40. package/docs/detalle/04-tdd.md +35 -0
  41. package/docs/detalle/05-smoke.md +32 -0
  42. package/docs/detalle/06-code-review.md +34 -0
  43. package/docs/detalle/07-merge-trazabilidad.md +33 -0
  44. package/docs/detalle/08-daily.md +29 -0
  45. package/docs/detalle/09-review.md +25 -0
  46. package/docs/detalle/10-retro.md +27 -0
  47. package/docs/detalle/README.md +20 -0
  48. package/docs/glosario.md +79 -0
  49. package/docs/guias/dev.md +66 -0
  50. package/docs/guias/lead.md +53 -0
  51. package/docs/guias/po.md +50 -0
  52. package/governance/branch-naming.md +36 -0
  53. package/governance/ci-rules.md +57 -0
  54. package/governance/commit-convention.md +76 -0
  55. package/index.html +479 -0
  56. package/install.sh +19 -0
  57. package/manifest.yaml +76 -0
  58. package/package.json +55 -0
  59. package/skills/dai-review/SKILL.md +78 -0
  60. package/skills/doc-to-backlog/SKILL.md +70 -0
  61. package/skills/doc-to-backlog/templates/backlog-candidato.md +49 -0
  62. package/skills/grill-epic/SKILL.md +76 -0
  63. package/skills/grill-intent/SKILL.md +43 -0
  64. package/skills/grill-intent/templates/intent.md +36 -0
  65. package/skills/grill-user-story/SKILL.md +76 -0
  66. package/skills/grill-user-story/templates/user-story.md +61 -0
  67. package/skills/link-us/SKILL.md +42 -0
  68. package/skills/link-us/templates/implements.yaml +16 -0
  69. package/skills/tdd/SKILL.md +109 -0
  70. package/skills/tdd/deep-modules.md +33 -0
  71. package/skills/tdd/interface-design.md +31 -0
  72. package/skills/tdd/mocking.md +59 -0
  73. package/skills/tdd/refactoring.md +10 -0
  74. package/skills/tdd/tests.md +61 -0
  75. package/templates/adr.md +43 -0
  76. package/templates/commit-msg +48 -0
  77. package/templates/definition-of-done.md +50 -0
  78. package/templates/definition-of-ready.md +51 -0
  79. package/templates/epica.md +62 -0
  80. package/templates/formato-us.md +129 -0
  81. package/templates/pull-request.md +62 -0
package/.env.example ADDED
@@ -0,0 +1,30 @@
1
+ # dai · configuración del adaptador de PM (copiar a .env y completar).
2
+ # El .env está gitignoreado para no filtrar secretos. Este .example SÍ se versiona.
3
+ # Las variables ya exportadas en la shell/CI ganan sobre el .env.
4
+
5
+ # ── Backend del tracker ──────────────────────────────────────────────────────
6
+ # md | jira | clickup (por ahora solo md está implementado)
7
+ DAI_PM=md
8
+
9
+ # Plantilla del link al ticket (para `dai ls` / stamp). {id} se reemplaza.
10
+ DAI_TRACKER_URL_TEMPLATE=https://jira.miempresa.com/browse/{id}
11
+
12
+ # ── Backend md (local, offline) ──────────────────────────────────────────────
13
+ # Carpeta donde viven las US como <ID>.md (p. ej. ABC-482.md).
14
+ DAI_MD_US_DIR=.dai/us
15
+
16
+ # ── Backend jira (REST v3 / Jira Cloud) — activar con DAI_PM=jira ────────────
17
+ # DAI_JIRA_BASE_URL=https://miempresa.atlassian.net
18
+ # DAI_JIRA_EMAIL=usuario@miempresa.com
19
+ # DAI_JIRA_TOKEN= # ← SECRETO. api_token de id.atlassian.com. Nunca commitear.
20
+ # DAI_JIRA_PROJECT= # clave del proyecto (ej. PROJ) — solo para `dai publish` (crear issues)
21
+ # DAI_JIRA_ISSUETYPE=Story # tipo de issue a crear (default Story) — solo para `dai publish`
22
+
23
+ # ── Backend clickup (REST v2) — activar con DAI_PM=clickup ───────────────────
24
+ # DAI_CLICKUP_TOKEN= # ← SECRETO. token personal scopeado.
25
+ # DAI_CLICKUP_LIST_ID= # ID de la lista donde crear tareas — solo para `dai publish`
26
+
27
+ # ── Forge (dai-review: comentar PR/MR) ───────────────────────────────────────
28
+ # Token SCOPEADO del forge para postear comentarios (git usa SSH, no esto).
29
+ # GITHUB_TOKEN= # ← SECRETO. Scope: repo / pull-requests.
30
+ # GITLAB_TOKEN= # ← SECRETO. Scope: api (o solo notes).
package/CHANGELOG.md ADDED
@@ -0,0 +1,46 @@
1
+ # Changelog
2
+
3
+ Formato basado en [Keep a Changelog](https://keepachangelog.com/). Versionado semver
4
+ (ver `VERSION`).
5
+
6
+ ## [0.1.0] — 2026-07-06
7
+
8
+ Primera versión: metodología completa + CLI de trazabilidad, probado end-to-end contra
9
+ ClickUp y Jira Cloud.
10
+
11
+ ### Metodología
12
+ - Manifiesto (constitución: 4 valores + 15 artículos), METODOLOGIA (protocolo invariante
13
+ + dial de niveles N1/N2/N3), SCRUM-CON-IA (los 10 pasos, con `detalle/`), EJEMPLO
14
+ end-to-end, glosario, guías por rol (PO/dev/lead), landing autocontenido (`index.html`).
15
+ - 7 ADRs: `ac_hash`, agnóstico del asistente, detección/estampado como comandos,
16
+ ubicación+schema del `implements.yaml`, superficie de comandos, distribución+licencia,
17
+ modelo de autenticación.
18
+
19
+ ### Templates y governance
20
+ - `formato-us`, `epica`, `definition-of-ready`, `definition-of-done`, `adr`,
21
+ `pull-request`, hook `commit-msg`; `branch-naming`, `ci-rules`, `commit-convention`.
22
+
23
+ ### Skills (para Claude y Copilot, generadas por `dai init`)
24
+ - El QUÉ: `doc-to-backlog` (un doc → backlog candidato), `grill-intent` (Gate 0),
25
+ `grill-epic` (épicas), `grill-user-story` (la US — detecta el tracker del `.env` y publica).
26
+ - El CÓMO: `link-us`, `tdd`, `dai-review`.
27
+
28
+ ### CLI (`dai`, Node, cero dependencias)
29
+ - **Definir el QUÉ:** `publish` (crea la US en el tracker desde un `.md`).
30
+ - **Trazabilidad:** `link-us` (+ `--resync`), `check`, `stamp`, `ls`, `ac-hash`.
31
+ - **PR y cierre:** `pr` (crea la PR precargada), `forge` (comentar/leer PR en GitHub/GitLab),
32
+ `done` (cierra la US: vuelve a la base, actualiza y borra la branch).
33
+ - **Setup:** `init` (scaffolder interactivo: asistente + tracker + OpenSpec), `install`,
34
+ `docs`, `doctor`.
35
+ - Adaptador de tracker: `md`, `jira` (ADF, Jira Cloud), `clickup`. Auth por SSH (git) +
36
+ token scopeado (forge/tracker), nunca contraseñas.
37
+ - **87 tests** (`node --test`), cero dependencias de runtime.
38
+
39
+ ### Distribución y comunidad
40
+ - Licencia **GPLv3**. Publicable en npm (scopeado); `install.sh` como shim de git-clone.
41
+ - `SECURITY.md`, `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`, `.editorconfig`, `.nvmrc`,
42
+ `.gitattributes`, templates de PR/issue, CI de GitHub Actions (Node 18/20/22).
43
+ - Tests de las rutas de red (jira/clickup/forge) con `fetch` mockeado. Sin links rotos;
44
+ `files` de npm sin tests ni secretos.
45
+
46
+ [0.1.0]: https://github.com/dforce2055/dai/releases/tag/v0.1.0
@@ -0,0 +1,37 @@
1
+ # Código de conducta
2
+
3
+ ## Nuestro compromiso
4
+
5
+ Como participantes y mantenedores, nos comprometemos a que participar en este
6
+ proyecto sea una experiencia **libre de acoso para todos**, sin importar edad,
7
+ identidad de género, discapacidad, etnia, nivel de experiencia, nacionalidad,
8
+ apariencia, religión u orientación.
9
+
10
+ ## Nuestros estándares
11
+
12
+ Comportamientos que esperamos:
13
+
14
+ - Lenguaje acogedor e inclusivo.
15
+ - Respeto por puntos de vista y experiencias distintas.
16
+ - Aceptar la crítica constructiva con gracia.
17
+ - Enfocarse en lo mejor para la comunidad.
18
+
19
+ Comportamientos inaceptables:
20
+
21
+ - Lenguaje o imágenes sexualizadas, o atención sexual no deseada.
22
+ - Trolleo, insultos, ataques personales o políticos.
23
+ - Acoso público o privado.
24
+ - Publicar información privada de otros sin permiso.
25
+
26
+ ## Aplicación
27
+
28
+ Los mantenedores son responsables de aclarar los estándares y de tomar acciones
29
+ correctivas justas ante comportamientos inaceptables, incluyendo editar o eliminar
30
+ contribuciones, y banear temporal o permanentemente a quien los viole.
31
+
32
+ Para reportar un problema de conducta, escribe a **dperez2055@gmail.com**. Todos los
33
+ reportes se revisan y se manejan con confidencialidad.
34
+
35
+ ## Atribución
36
+
37
+ Adaptado del [Contributor Covenant](https://www.contributor-covenant.org), v2.1.
@@ -0,0 +1,66 @@
1
+ # Contribuir a dai
2
+
3
+ Gracias por querer mejorar `dai`. Es **software libre (GPLv3)** y la comunidad es
4
+ bienvenida — al contribuir, aceptas que tu aporte se distribuya bajo la misma
5
+ licencia (ver [`LICENSE`](LICENSE)).
6
+
7
+ `dai` **usa su propia metodología** (dogfooding). Contribuir es una buena forma de
8
+ verla funcionar.
9
+
10
+ ## Setup
11
+
12
+ Cero dependencias. Solo hace falta **Node ≥ 18**:
13
+
14
+ ```bash
15
+ git clone <tu-fork> dai && cd dai
16
+ npm test # 48 tests, sin `npm install` (no hay deps)
17
+ ```
18
+
19
+ ## Reglas de oro
20
+
21
+ 1. **Cero dependencias de runtime.** El CLI corre en redes cerradas sin `npm install`
22
+ (ADR-0006). No agregues paquetes a `dependencies`. Si algo parece necesitar una
23
+ dep, abre un issue a discutir antes.
24
+ 2. **Test primero (TDD).** Toda lógica nueva del CLI va con su test en `cli/test/`
25
+ (`node --test`). La parte pura y determinista es la que se testea; la red (fetch)
26
+ no se unit-testea, se aísla.
27
+ 3. **El contrato no se rompe en silencio.** Cambiar el algoritmo del `ac_hash`, el
28
+ schema del `implements.yaml` o la superficie de comandos es un cambio **mayor** y
29
+ necesita un ADR (ver abajo).
30
+ 4. **Secretos nunca en el repo.** Tokens solo en `.env` (gitignored) o el secret
31
+ store del CI. git usa **SSH**, las APIs usan **tokens scopeados** (ADR-0007).
32
+
33
+ ## Flujo (la propia metodología)
34
+
35
+ 1. **Rama** desde `main`: `feature/<slug>` o `fix/<slug>`.
36
+ 2. **Implementa con tests.** `npm test` en verde antes de abrir el PR.
37
+ 3. **PR** siguiendo [`templates/pull-request.md`](templates/pull-request.md):
38
+ descripción, testing, y el checklist de Dev + Aprobador.
39
+ 4. Un **mantenedor revisa y firma** la aprobación (la IA puede dar el primer pase,
40
+ pero aprueba una persona — Art. 5 del [manifiesto](docs/MANIFIESTO.md)).
41
+
42
+ ## Decisiones estructurales → ADR
43
+
44
+ Si tu cambio toca una decisión de fondo (un contrato, un modelo, la distribución),
45
+ escribe un **ADR** con [`templates/adr.md`](templates/adr.md), numerado, en
46
+ [`docs/adr/`](docs/adr/). Los ADR son inmutables: si algo cambia, se escribe uno
47
+ nuevo que supersede al viejo.
48
+
49
+ ## Convención de commits
50
+
51
+ `tipo(scope): resumen` — `feat` · `fix` · `docs` · `chore` · `refactor` · `test`.
52
+ Ejemplo: `feat(cli): dai stamp reporta el ambiente`. La convención completa (tipos,
53
+ reglas, breaking changes) y un hook `commit-msg` que la valida están en
54
+ [`governance/commit-convention.md`](governance/commit-convention.md).
55
+
56
+ ## Reportar / proponer
57
+
58
+ - **Bug** → issue con: qué esperabas, qué pasó, cómo reproducir, versión (`dai --version`).
59
+ - **Idea** → issue de discusión antes de un PR grande, para acordar el enfoque.
60
+
61
+ ## Qué hace que un PR entre rápido
62
+
63
+ - Tests verdes y acotado a una cosa.
64
+ - Sin dependencias nuevas.
65
+ - Si toca comportamiento, el `README`/docs quedan al día.
66
+ - Si toca un contrato, viene con su ADR.