@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.
- package/.env.example +30 -0
- package/CHANGELOG.md +46 -0
- package/CODE_OF_CONDUCT.md +37 -0
- package/CONTRIBUTING.md +66 -0
- package/LICENSE +674 -0
- package/README.md +288 -0
- package/SECURITY.md +37 -0
- package/VERSION +1 -0
- package/cli/dai.mjs +692 -0
- package/cli/lib/ac-hash.mjs +74 -0
- package/cli/lib/args.mjs +23 -0
- package/cli/lib/bootstrap.mjs +74 -0
- package/cli/lib/env.mjs +23 -0
- package/cli/lib/forge-api.mjs +96 -0
- package/cli/lib/forge-url.mjs +61 -0
- package/cli/lib/fsutil.mjs +24 -0
- package/cli/lib/implements.mjs +94 -0
- package/cli/lib/link-us.mjs +59 -0
- package/cli/lib/pm-adapter.mjs +59 -0
- package/cli/lib/pm-clickup.mjs +54 -0
- package/cli/lib/pm-jira.mjs +123 -0
- package/cli/lib/pr.mjs +53 -0
- package/cli/lib/us.mjs +36 -0
- package/docs/EJEMPLO-END-TO-END.md +330 -0
- package/docs/MANIFIESTO.md +114 -0
- package/docs/METODOLOGIA.md +254 -0
- package/docs/PROBAR.md +91 -0
- package/docs/SCRUM-CON-IA.md +190 -0
- package/docs/adr/0001-contrato-ac-hash.md +86 -0
- package/docs/adr/0002-agnostico-del-asistente.md +87 -0
- package/docs/adr/0003-deteccion-y-estampado-son-comandos.md +73 -0
- package/docs/adr/0004-ubicacion-y-schema-implements.md +94 -0
- package/docs/adr/0005-superficie-comandos-y-stamp.md +65 -0
- package/docs/adr/0006-distribucion-y-licencia.md +59 -0
- package/docs/adr/0007-modelo-de-autenticacion.md +63 -0
- package/docs/adr/README.md +19 -0
- package/docs/detalle/01-refinamiento.md +33 -0
- package/docs/detalle/02-planning.md +27 -0
- package/docs/detalle/03-ramas.md +32 -0
- package/docs/detalle/04-tdd.md +35 -0
- package/docs/detalle/05-smoke.md +32 -0
- package/docs/detalle/06-code-review.md +34 -0
- package/docs/detalle/07-merge-trazabilidad.md +33 -0
- package/docs/detalle/08-daily.md +29 -0
- package/docs/detalle/09-review.md +25 -0
- package/docs/detalle/10-retro.md +27 -0
- package/docs/detalle/README.md +20 -0
- package/docs/glosario.md +79 -0
- package/docs/guias/dev.md +66 -0
- package/docs/guias/lead.md +53 -0
- package/docs/guias/po.md +50 -0
- package/governance/branch-naming.md +36 -0
- package/governance/ci-rules.md +57 -0
- package/governance/commit-convention.md +76 -0
- package/index.html +479 -0
- package/install.sh +19 -0
- package/manifest.yaml +76 -0
- package/package.json +55 -0
- package/skills/dai-review/SKILL.md +78 -0
- package/skills/doc-to-backlog/SKILL.md +70 -0
- package/skills/doc-to-backlog/templates/backlog-candidato.md +49 -0
- package/skills/grill-epic/SKILL.md +76 -0
- package/skills/grill-intent/SKILL.md +43 -0
- package/skills/grill-intent/templates/intent.md +36 -0
- package/skills/grill-user-story/SKILL.md +76 -0
- package/skills/grill-user-story/templates/user-story.md +61 -0
- package/skills/link-us/SKILL.md +42 -0
- package/skills/link-us/templates/implements.yaml +16 -0
- package/skills/tdd/SKILL.md +109 -0
- package/skills/tdd/deep-modules.md +33 -0
- package/skills/tdd/interface-design.md +31 -0
- package/skills/tdd/mocking.md +59 -0
- package/skills/tdd/refactoring.md +10 -0
- package/skills/tdd/tests.md +61 -0
- package/templates/adr.md +43 -0
- package/templates/commit-msg +48 -0
- package/templates/definition-of-done.md +50 -0
- package/templates/definition-of-ready.md +51 -0
- package/templates/epica.md +62 -0
- package/templates/formato-us.md +129 -0
- 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.
|
package/CONTRIBUTING.md
ADDED
|
@@ -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.
|