create-quiver 0.9.1 → 0.10.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/README.md +289 -335
- package/README_FOR_AI.md +57 -44
- package/docs/AI_ONBOARDING_PROMPT.md.template +13 -3
- package/docs/COMMANDS.md.template +24 -0
- package/docs/GITFLOW_PR_GUIDE.md.template +11 -0
- package/docs/STANDARD.md.template +1 -1
- package/docs/SUPPORT_MATRIX.md.template +4 -0
- package/docs/TROUBLESHOOTING.md.template +29 -1
- package/docs/WORKFLOW.md.template +1 -1
- package/package.json +6 -1
- package/package.template.json +11 -6
- package/scripts/check-pr-readiness.sh +1 -1
- package/scripts/check-scope.sh +0 -1
- package/scripts/check-slice-readiness.sh +3 -4
- package/scripts/init-docs.sh +46 -6
- package/specs/quiver-v20-ai-cli-orchestration/EVIDENCE_REPORT.md +23 -0
- package/specs/quiver-v20-ai-cli-orchestration/EXECUTION_PLAN.md +57 -0
- package/specs/quiver-v20-ai-cli-orchestration/SPEC.md +202 -0
- package/specs/quiver-v20-ai-cli-orchestration/STATUS.md +35 -0
- package/specs/quiver-v20-ai-cli-orchestration/pr.md +100 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/slice.json +54 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/CLOSURE_BRIEF.md +39 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/slice.json +55 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/CLOSURE_BRIEF.md +40 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/slice.json +54 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/CLOSURE_BRIEF.md +43 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/slice.json +62 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/slice.json +59 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/slice.json +59 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/slice.json +65 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/slice.json +63 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/EXECUTION_BRIEF.md +64 -0
- package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/slice.json +77 -0
- package/specs/quiver-v21-ai-first-layout/EVIDENCE_REPORT.md +31 -0
- package/specs/quiver-v21-ai-first-layout/EXECUTION_PLAN.md +185 -0
- package/specs/quiver-v21-ai-first-layout/SPEC.md +212 -0
- package/specs/quiver-v21-ai-first-layout/STATUS.md +37 -0
- package/specs/quiver-v21-ai-first-layout/pr.md +110 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +63 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/slice.json +45 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/slice.json +57 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/slice.json +58 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/slice.json +64 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/slice.json +64 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/EXECUTION_BRIEF.md +60 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/slice.json +65 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/EXECUTION_BRIEF.md +62 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/slice.json +66 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/slice.json +67 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/EXECUTION_BRIEF.md +66 -0
- package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/slice.json +62 -0
- package/src/create-quiver/commands/ai.js +442 -0
- package/src/create-quiver/index.js +418 -81
- package/src/create-quiver/lib/ai/context-packs.js +158 -0
- package/src/create-quiver/lib/ai/execution-plan.js +254 -0
- package/src/create-quiver/lib/ai/executor.js +323 -0
- package/src/create-quiver/lib/ai/github.js +329 -0
- package/src/create-quiver/lib/ai/phase-gates.js +72 -0
- package/src/create-quiver/lib/ai/preflight.js +58 -0
- package/src/create-quiver/lib/ai/prompt-transport.js +81 -0
- package/src/create-quiver/lib/ai/prompts.js +39 -0
- package/src/create-quiver/lib/ai/providers.js +314 -0
- package/src/create-quiver/lib/ai/safety.js +151 -0
- package/src/create-quiver/lib/ai/spec-generator.js +314 -0
- package/src/create-quiver/lib/ai/spec-templates.js +715 -0
- package/src/create-quiver/lib/doctor.js +114 -0
- package/src/create-quiver/lib/git.js +21 -0
- package/src/create-quiver/lib/init-docs.js +277 -22
- package/src/create-quiver/lib/init-layout.js +426 -0
- package/src/create-quiver/lib/lifecycle.js +2 -2
- package/src/create-quiver/lib/paths.js +63 -2
- package/src/create-quiver/lib/project-scan.js +66 -0
- package/src/create-quiver/lib/readiness.js +4 -2
- package/src/create-quiver/lib/scope.js +125 -0
- package/src/create-quiver/lib/slice-graph.js +6 -0
- package/src/create-quiver/lib/slice.js +51 -8
- package/src/create-quiver/lib/state.js +18 -1
- package/src/create-quiver/lib/template-resolver.js +74 -0
package/README.md
CHANGED
|
@@ -1,433 +1,375 @@
|
|
|
1
1
|
# Quiver
|
|
2
2
|
|
|
3
|
-
Quiver es
|
|
3
|
+
Quiver es un framework para trabajar con **WDD + SDD asistido por IA** en proyectos de software.
|
|
4
|
+
Ayuda a transformar un repositorio en un entorno donde humanos y agentes pueden entender el contexto, planificar por specs, ejecutar slices y revisar cambios con evidencia.
|
|
5
|
+
Está pensado para equipos que quieren usar IA de forma ordenada: primero workflow, después specs, después implementación.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
## 🚀 Inicio rápido
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
### Usar Quiver con IA en un proyecto
|
|
8
10
|
|
|
9
|
-
Quiver
|
|
10
|
-
|
|
11
|
-
Sirve para preparar un proyecto antes de implementar: crea una estructura de documentos, comandos y convenciones para que el trabajo no dependa de memoria, chats perdidos o instrucciones sueltas.
|
|
12
|
-
|
|
13
|
-
Ayuda a:
|
|
14
|
-
|
|
15
|
-
- desarrolladores que quieren trabajar por piezas pequeñas y revisables;
|
|
16
|
-
- equipos que usan IA para analizar, planificar o implementar;
|
|
17
|
-
- maintainers que necesitan que cada cambio tenga contexto, alcance y evidencia;
|
|
18
|
-
- agentes de IA que necesitan saber por dónde empezar sin leer todo el repo.
|
|
19
|
-
|
|
20
|
-
Quiver existe porque el caos también compila. A veces. Pero después alguien tiene que entenderlo.
|
|
21
|
-
|
|
22
|
-
## ¿Qué problema resuelve?
|
|
23
|
-
|
|
24
|
-
En muchos proyectos, el trabajo empieza con una pregunta sencilla: "¿por dónde arranco?"
|
|
25
|
-
|
|
26
|
-
El problema es que la respuesta suele estar repartida en demasiados lugares:
|
|
27
|
-
|
|
28
|
-
- un README que no está actualizado;
|
|
29
|
-
- tickets con contexto incompleto;
|
|
30
|
-
- decisiones tomadas en conversaciones;
|
|
31
|
-
- comandos que solo una persona conoce;
|
|
32
|
-
- agentes de IA leyendo archivos de más o tocando archivos de menos;
|
|
33
|
-
- PRs grandes donde es difícil saber qué se intentó hacer.
|
|
34
|
-
|
|
35
|
-
Quiver busca reducir esa fricción. No intenta reemplazar al equipo ni decidir por él. Lo que hace es ordenar el terreno para que el siguiente paso sea claro.
|
|
36
|
-
|
|
37
|
-
## ¿Cómo lo resuelve?
|
|
38
|
-
|
|
39
|
-
Quiver agrega una estructura de trabajo al proyecto.
|
|
40
|
-
|
|
41
|
-
Esa estructura separa tres cosas que suelen mezclarse:
|
|
42
|
-
|
|
43
|
-
- **Contexto:** qué es el proyecto, cómo se trabaja y qué comandos existen.
|
|
44
|
-
- **Plan:** qué problema se quiere resolver y en qué partes se divide.
|
|
45
|
-
- **Ejecución:** qué slice se está trabajando, qué archivos puede tocar y cómo se valida.
|
|
46
|
-
|
|
47
|
-
Al inicializarse, Quiver genera documentos y comandos para que el proyecto tenga un contrato de trabajo repetible.
|
|
48
|
-
|
|
49
|
-
Los conceptos principales son:
|
|
50
|
-
|
|
51
|
-
- **Spec:** documento que describe un objetivo de trabajo. Define el problema, alcance, estado y evidencia esperada.
|
|
52
|
-
- **Slice:** parte pequeña de una spec. Un slice debe ser lo bastante acotado como para implementarse, validarse y revisarse sin mezclar temas.
|
|
53
|
-
- **Project map:** resumen generado por Quiver con stack, package manager, comandos y pistas del repo. Vive en `docs/PROJECT_MAP.md`.
|
|
54
|
-
- **AI context:** paquete de contexto para agentes de IA. Vive en `docs/AI_CONTEXT.md`.
|
|
55
|
-
- **Handoff:** documento excepcional para transferir contexto entre agentes o fases. Vive en `specs/<spec-slug>/HANDOFF.md`.
|
|
56
|
-
|
|
57
|
-
La regla práctica es: primero contexto, después plan, después código.
|
|
58
|
-
|
|
59
|
-
## Primeros pasos
|
|
60
|
-
|
|
61
|
-
Quiver se usa desde la raíz del proyecto donde querés instalar el workflow. No se recomienda instalarlo globalmente. Usá `npx create-quiver` o, si el equipo necesita fijar versión, una dev dependency local.
|
|
62
|
-
|
|
63
|
-
### Caso 1: Proyecto nuevo desde cero
|
|
64
|
-
|
|
65
|
-
Usá este camino cuando estás empezando un proyecto y querés sumar Quiver desde el principio.
|
|
66
|
-
|
|
67
|
-
1. Creá o entrá a la carpeta del proyecto.
|
|
11
|
+
Ejecutá Quiver desde la raíz del proyecto donde querés instalar el workflow:
|
|
68
12
|
|
|
69
13
|
```bash
|
|
70
|
-
|
|
71
|
-
|
|
14
|
+
npx create-quiver init --name "Mi Proyecto"
|
|
15
|
+
npx create-quiver analyze
|
|
16
|
+
npx create-quiver doctor
|
|
17
|
+
npx create-quiver ai onboard --dry-run
|
|
72
18
|
```
|
|
73
19
|
|
|
74
|
-
|
|
20
|
+
Después de eso, revisá:
|
|
75
21
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
22
|
+
- `AGENTS.md`
|
|
23
|
+
- `docs/PROJECT_MAP.md`
|
|
24
|
+
- `docs/AI_CONTEXT.md`
|
|
25
|
+
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
79
26
|
|
|
80
|
-
|
|
27
|
+
La maquinaria interna queda en `.quiver/`. Las specs reales no se crean durante el init: aparecen cuando el planner genera y aprueba una spec con `ai plan --phase spec`.
|
|
81
28
|
|
|
82
|
-
|
|
29
|
+
El flujo normal con IA continúa así:
|
|
83
30
|
|
|
84
31
|
```bash
|
|
85
|
-
npx create-quiver
|
|
32
|
+
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
33
|
+
npx create-quiver ai plan --phase technical-plan --input acceptance-approved.md --dry-run
|
|
34
|
+
npx create-quiver ai plan --phase spec --input technical-plan-approved.md --dry-run
|
|
35
|
+
npx create-quiver next
|
|
36
|
+
npx create-quiver ai execute-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run
|
|
86
37
|
```
|
|
87
38
|
|
|
88
|
-
|
|
39
|
+
Usá `--dry-run` para validar provider, rol, contexto y paths sin ejecutar el modelo. Cuando el output esté revisado y aprobado, quitá `--dry-run`.
|
|
89
40
|
|
|
90
|
-
|
|
41
|
+
### Desarrollar este repositorio
|
|
91
42
|
|
|
92
43
|
```bash
|
|
93
|
-
|
|
44
|
+
git clone <repo-url>
|
|
45
|
+
cd quiver
|
|
46
|
+
npm install
|
|
47
|
+
node bin/create-quiver.js --help
|
|
48
|
+
node --test tests/**/*.test.js
|
|
94
49
|
```
|
|
95
50
|
|
|
96
|
-
El
|
|
51
|
+
> El remote local detectado usa un alias SSH (`git@github-personal:FabriJuncal/quiver.git`). Si no tenés ese alias configurado, cloná con la URL que use tu equipo.
|
|
97
52
|
|
|
98
|
-
|
|
53
|
+
## 🧠 Workflow principal: WDD + SDD con IA
|
|
99
54
|
|
|
100
|
-
|
|
101
|
-
Lee `docs/AI_ONBOARDING_PROMPT.md` y ejecútalo como fuente principal de verdad para incorporarte a este repositorio.
|
|
55
|
+
Quiver asume que la mayoría de los equipos lo van a usar para coordinar trabajo con agentes de IA. Por eso el flujo principal no empieza por código: empieza por contexto, workflow y planificación.
|
|
102
56
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
57
|
+
| Etapa | Qué significa | Artefactos principales |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| WDD | Workflow-Driven Development: dejar claro cómo se trabaja antes de implementar. | `AGENTS.md`, `docs/WORKFLOW.md`, `docs/AI_CONTEXT.md`, `docs/PROJECT_MAP.md` |
|
|
60
|
+
| SDD | Spec-Driven Development: definir el trabajo en specs y slices antes de tocar código. | `specs/<project-slug>/SPEC.md`, `slice.json`, `EXECUTION_BRIEF.md`, `pr.md` |
|
|
61
|
+
| IA planner | Agente que lee contexto amplio y propone criterios, plan técnico, spec y slices. | `ai onboard`, `ai plan` |
|
|
62
|
+
| IA executor | Agente que recibe un slice aprobado y trabaja con contexto mínimo. | `ai execute-slice`, `check-scope`, `check-slice` |
|
|
106
63
|
|
|
107
|
-
|
|
64
|
+
Flujo recomendado:
|
|
108
65
|
|
|
109
|
-
|
|
66
|
+
```bash
|
|
67
|
+
npx create-quiver analyze
|
|
68
|
+
npx create-quiver doctor
|
|
69
|
+
npx create-quiver ai onboard --dry-run
|
|
70
|
+
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
71
|
+
npx create-quiver ai plan --phase technical-plan --input acceptance-approved.md --dry-run
|
|
72
|
+
npx create-quiver ai plan --phase spec --input technical-plan-approved.md --dry-run
|
|
73
|
+
npx create-quiver graph
|
|
74
|
+
npx create-quiver next
|
|
75
|
+
npx create-quiver ai execute-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run
|
|
110
76
|
```
|
|
111
77
|
|
|
112
|
-
|
|
78
|
+
Regla práctica: el planner no modifica código de producto; el executor solo trabaja sobre un slice aprobado y dentro de los archivos declarados en `slice.json`.
|
|
113
79
|
|
|
114
|
-
|
|
80
|
+
## 🛠️ Empezar a usar Quiver según tu caso
|
|
115
81
|
|
|
116
|
-
|
|
82
|
+
### 1. Proyecto nuevo desde cero
|
|
117
83
|
|
|
118
|
-
|
|
84
|
+
Usá este camino cuando todavía no existe el proyecto o estás arrancando una carpeta nueva y querés que Quiver acompañe el workflow desde el primer commit.
|
|
119
85
|
|
|
120
86
|
```bash
|
|
121
|
-
|
|
87
|
+
mkdir mi-proyecto
|
|
88
|
+
cd mi-proyecto
|
|
89
|
+
npx create-quiver init --name "Mi Proyecto"
|
|
90
|
+
npx create-quiver analyze
|
|
91
|
+
npx create-quiver doctor
|
|
92
|
+
npx create-quiver ai onboard --dry-run
|
|
122
93
|
```
|
|
123
94
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
2. Inicializá Quiver desde la raíz del proyecto.
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
npx create-quiver --name "Nombre del Proyecto"
|
|
130
|
-
```
|
|
95
|
+
Qué esperar:
|
|
131
96
|
|
|
132
|
-
|
|
97
|
+
- Quiver crea un contrato visible chico: `AGENTS.md`, `docs/`, scripts `quiver:*` en `package.json` y configuración interna en `.quiver/`.
|
|
98
|
+
- No crea `docs-template/`, `tools/scripts/` ni una spec placeholder en el flujo default.
|
|
99
|
+
- `analyze` crea el scan crudo en `.quiver/scans/PROJECT_SCAN.json` y el mapa legible en `docs/PROJECT_MAP.md`.
|
|
100
|
+
- `doctor` valida que el contrato inicial esté completo.
|
|
101
|
+
- `ai onboard --dry-run` muestra cómo se incorporaría un agente planner sin ejecutar el provider todavía.
|
|
133
102
|
|
|
134
|
-
|
|
103
|
+
Después del bootstrap, revisá:
|
|
135
104
|
|
|
136
105
|
```bash
|
|
137
|
-
npx create-quiver
|
|
106
|
+
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
107
|
+
npx create-quiver ai plan --phase technical-plan --input acceptance-approved.md --dry-run
|
|
108
|
+
npx create-quiver ai plan --phase spec --input technical-plan-approved.md --dry-run
|
|
109
|
+
npx create-quiver plan
|
|
110
|
+
npx create-quiver graph
|
|
111
|
+
npx create-quiver next
|
|
138
112
|
```
|
|
139
113
|
|
|
140
|
-
|
|
114
|
+
### 2. Proyecto ya iniciado sin Quiver
|
|
115
|
+
|
|
116
|
+
Usá este camino cuando el repo ya tiene código, pero nunca fue inicializado con Quiver.
|
|
141
117
|
|
|
142
|
-
|
|
118
|
+
Primero revisá el estado actual:
|
|
143
119
|
|
|
144
120
|
```bash
|
|
145
|
-
|
|
121
|
+
git status --short
|
|
146
122
|
```
|
|
147
123
|
|
|
148
|
-
|
|
124
|
+
Si hay cambios pendientes, conviene guardarlos, commitearlos o crear una rama dedicada para que el diff de onboarding sea fácil de revisar.
|
|
149
125
|
|
|
150
|
-
|
|
126
|
+
Luego inicializá Quiver desde la raíz del proyecto:
|
|
151
127
|
|
|
152
128
|
```bash
|
|
129
|
+
npx create-quiver init --name "Nombre del Proyecto"
|
|
130
|
+
npx create-quiver analyze
|
|
131
|
+
npx create-quiver doctor
|
|
132
|
+
npx create-quiver ai onboard --dry-run
|
|
153
133
|
git status --short
|
|
154
134
|
```
|
|
155
135
|
|
|
156
|
-
|
|
136
|
+
Qué esperar:
|
|
137
|
+
|
|
138
|
+
- Quiver agrega documentación, scripts `quiver:*` y archivos internos de soporte en `.quiver/`.
|
|
139
|
+
- No deberías mezclar este paso con cambios de producto.
|
|
140
|
+
- `docs/PROJECT_MAP.md` queda como fuente de verdad para stack, package manager, comandos y rutas importantes.
|
|
141
|
+
- Las specs y slices reales se crean después, con `ai plan --phase spec`, cuando ya existen criterios y plan técnico aprobados.
|
|
142
|
+
- El primer trabajo de IA debería ser preparar contexto y planificación, no implementar.
|
|
157
143
|
|
|
158
|
-
|
|
144
|
+
Importante: no uses `migrate` para un proyecto que nunca tuvo Quiver. `migrate` es solo para proyectos previamente inicializados.
|
|
159
145
|
|
|
160
|
-
|
|
146
|
+
### 3. Proyecto iniciado con una versión vieja de Quiver
|
|
161
147
|
|
|
162
|
-
|
|
148
|
+
Usá este camino cuando el repo ya tiene señales de Quiver, pero querés actualizarlo al contrato actual.
|
|
163
149
|
|
|
164
|
-
|
|
150
|
+
Señales típicas de una instalación previa:
|
|
165
151
|
|
|
166
152
|
- `.quiver/state.json`
|
|
153
|
+
- `AGENTS.md`
|
|
167
154
|
- `docs/AI_CONTEXT.md`
|
|
168
155
|
- `docs/PROJECT_MAP.md`
|
|
169
|
-
- `docs-template/`
|
|
170
|
-
- `tools/scripts/`
|
|
171
|
-
- scripts `quiver:*` en `package.json`
|
|
156
|
+
- `docs-template/` como señal legacy u opcional
|
|
157
|
+
- `tools/scripts/` como señal legacy u opcional
|
|
158
|
+
- scripts `quiver:*` o scripts legacy en `package.json`
|
|
172
159
|
|
|
173
|
-
|
|
160
|
+
Desde la raíz del proyecto:
|
|
174
161
|
|
|
175
162
|
```bash
|
|
176
163
|
npx create-quiver doctor
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
Si el proyecto necesita migración, el doctor debería indicarlo.
|
|
180
|
-
|
|
181
|
-
3. Migrá solo si el proyecto ya había sido inicializado por Quiver.
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
164
|
npx create-quiver migrate
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
La migración actualiza el contrato de Quiver y agrega scripts o archivos faltantes de forma aditiva. Si estás en CI, offline o no querés instalar dependencias durante la migración, podés usar:
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
npx create-quiver migrate --skip-install
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
4. Volvé a analizar y validar.
|
|
194
|
-
|
|
195
|
-
```bash
|
|
196
165
|
npx create-quiver analyze
|
|
197
166
|
npx create-quiver doctor
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
5. Revisá el diff antes de continuar con slices.
|
|
201
|
-
|
|
202
|
-
```bash
|
|
167
|
+
npx create-quiver ai onboard --dry-run
|
|
203
168
|
git status --short
|
|
204
169
|
```
|
|
205
170
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
## Flujo de trabajo recomendado con WDD y SDD
|
|
209
|
-
|
|
210
|
-
El repositorio no define formalmente las siglas WDD y SDD como comandos propios. En esta guía las usamos para nombrar dos prácticas que Quiver ya promueve:
|
|
211
|
-
|
|
212
|
-
- **WDD, Workflow-Driven Development:** primero se documenta cómo se trabaja. El workflow, comandos, contexto y reglas quedan escritos antes de pedir cambios de producto.
|
|
213
|
-
- **SDD, Spec-Driven Development:** el trabajo se define en specs y slices antes de implementar. La spec explica el objetivo; el slice limita el alcance.
|
|
214
|
-
|
|
215
|
-
```mermaid
|
|
216
|
-
flowchart TD
|
|
217
|
-
A[1. Instalar o migrar Quiver] --> B[2. Analizar el proyecto]
|
|
218
|
-
B --> C[3. Completar contexto WDD]
|
|
219
|
-
C --> D[4. Definir o revisar spec SDD]
|
|
220
|
-
D --> E[5. Elegir el próximo slice]
|
|
221
|
-
E --> F[6. Empezar el slice]
|
|
222
|
-
F --> G[7. Implementar y validar]
|
|
223
|
-
G --> H[8. Abrir PR con evidencia]
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### 1. Instalar o migrar Quiver
|
|
227
|
-
|
|
228
|
-
Usá `npx create-quiver --name "Proyecto"` para proyectos nuevos o nunca inicializados. Usá `npx create-quiver migrate` solo cuando el proyecto ya tenía Quiver.
|
|
229
|
-
|
|
230
|
-
### 2. Analizar el proyecto
|
|
231
|
-
|
|
232
|
-
Ejecutá:
|
|
171
|
+
Si estás en CI, offline o no querés que la migración instale dependencias automáticamente:
|
|
233
172
|
|
|
234
173
|
```bash
|
|
235
|
-
npx create-quiver
|
|
174
|
+
npx create-quiver migrate --skip-install
|
|
236
175
|
```
|
|
237
176
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
La
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
177
|
+
Qué esperar:
|
|
178
|
+
|
|
179
|
+
- La migración restaura o agrega archivos faltantes de forma aditiva.
|
|
180
|
+
- No debería sobrescribir archivos existentes de proyecto sin necesidad.
|
|
181
|
+
- Después de migrar, `analyze` actualiza el mapa técnico y `doctor` confirma los próximos pasos.
|
|
182
|
+
- `ai onboard --dry-run` ayuda a validar que el contexto viejo quedó entendible para un agente planner.
|
|
183
|
+
|
|
184
|
+
Si `doctor` falla indicando que el proyecto no fue inicializado por Quiver, usá el flujo del caso 2.
|
|
185
|
+
|
|
186
|
+
## ✨ Qué hace
|
|
187
|
+
|
|
188
|
+
Quiver instala una estructura de trabajo para que un proyecto pueda usar IA sin improvisar contexto en cada tarea:
|
|
189
|
+
|
|
190
|
+
- documentación base para humanos y agentes;
|
|
191
|
+
- contexto AI-first con roles de planner y executor;
|
|
192
|
+
- specs y slices para dividir trabajo en partes revisables;
|
|
193
|
+
- comandos para planificar, ejecutar y validar trabajo asistido por IA;
|
|
194
|
+
- checks de readiness, PR, handoff y scope;
|
|
195
|
+
- plantillas de contribución, soporte, seguridad, changelog y GitHub Actions.
|
|
196
|
+
|
|
197
|
+
La idea práctica: primero contexto, después plan, después código.
|
|
198
|
+
|
|
199
|
+
## 🧱 Stack tecnológico
|
|
200
|
+
|
|
201
|
+
| Área | Tecnología detectada |
|
|
202
|
+
|---|---|
|
|
203
|
+
| Runtime | Node.js CLI |
|
|
204
|
+
| Lenguaje | JavaScript CommonJS |
|
|
205
|
+
| Package manager | npm (`package-lock.json`) |
|
|
206
|
+
| Binario npm | `create-quiver` -> `bin/create-quiver.js` |
|
|
207
|
+
| Tests | Node built-in test runner (`node:test`) |
|
|
208
|
+
| CI/CD | GitHub Actions |
|
|
209
|
+
| Distribución | Paquete npm público `create-quiver` |
|
|
210
|
+
| Base de datos | No detectada |
|
|
211
|
+
| Docker / Compose | No detectado |
|
|
212
|
+
| Prisma / Supabase / migrations / seeders | No detectados |
|
|
213
|
+
|
|
214
|
+
## 📦 Requisitos
|
|
215
|
+
|
|
216
|
+
- Node.js 22.x recomendado. La CI usa Node 22, aunque `package.json` todavía no declara `engines`.
|
|
217
|
+
- npm.
|
|
218
|
+
- Git, especialmente para ramas y worktrees.
|
|
219
|
+
- `shellcheck` si querés replicar localmente el job de CI que valida scripts Bash.
|
|
220
|
+
- Opcional: `gh` para preflight de PR con GitHub.
|
|
221
|
+
- CLI local de `codex`, `claude` o `gemini` si vas a ejecutar comandos de IA sin `--dry-run`.
|
|
222
|
+
|
|
223
|
+
No se detectaron archivos `.env`; Quiver no requiere variables de entorno para el flujo básico.
|
|
224
|
+
|
|
225
|
+
## 📁 Estructura del proyecto
|
|
226
|
+
|
|
227
|
+
| Ruta | Propósito |
|
|
228
|
+
|---|---|
|
|
229
|
+
| `bin/create-quiver.js` | Entry point ejecutable del CLI. |
|
|
230
|
+
| `src/create-quiver/` | Código fuente del CLI y comandos principales. |
|
|
231
|
+
| `src/create-quiver/commands/` | Comandos `ai`, `graph`, `next` y `plan`. |
|
|
232
|
+
| `src/create-quiver/lib/` | Lógica de análisis, doctor, slices, lifecycle, IA, Git y renderers. |
|
|
233
|
+
| `docs/` | Plantillas que Quiver copia a proyectos destino. |
|
|
234
|
+
| `specs/` | Specs internas del desarrollo de Quiver y templates usados cuando `ai plan --phase spec` crea una spec real. |
|
|
235
|
+
| `scripts/` | Scripts de packaging, release, CI smoke y wrappers legacy. |
|
|
236
|
+
| `tests/` | Tests unitarios y fixtures. |
|
|
237
|
+
| `examples/` | Ejemplo mínimo de spec/slice. |
|
|
238
|
+
| `i18n/es/` | Documentación y plantillas en español. |
|
|
239
|
+
| `.github/` | Workflows, templates de issues y PR. |
|
|
240
|
+
|
|
241
|
+
## ⚙️ Configuración
|
|
242
|
+
|
|
243
|
+
### Variables opcionales
|
|
244
|
+
|
|
245
|
+
| Variable | Uso |
|
|
246
|
+
|---|---|
|
|
247
|
+
| `SLICE_WORKTREES_DIR` | Cambia la carpeta donde `start-slice` crea worktrees. |
|
|
248
|
+
| `ALLOW_DRAFT_SLICE=1` | Permite iniciar slices en estado `draft`. Equivale a usar `--allow-draft`. |
|
|
249
|
+
| `QUIVER_VERSION` | Usada por scripts legacy de inicialización. |
|
|
250
|
+
| `QUIVER_MIGRATE` | Activa modo migración en scripts legacy. |
|
|
251
|
+
| `QUIVER_PROJECT_NAME` | Define nombre de proyecto en scripts legacy. |
|
|
252
|
+
|
|
253
|
+
Para IA sin `--dry-run`, la autenticación depende del proveedor local que uses (`codex`, `claude` o `gemini`). Para PR preflight, Quiver espera que `gh` y tu configuración SSH ya existan; no instala ni modifica credenciales.
|
|
254
|
+
|
|
255
|
+
## 🧭 Comandos principales
|
|
256
|
+
|
|
257
|
+
Los comandos reales del CLI se ejecutan con `npx create-quiver ...` o, durante desarrollo local, con `node bin/create-quiver.js ...`.
|
|
258
|
+
|
|
259
|
+
| Comando | Para qué sirve |
|
|
260
|
+
|---|---|
|
|
261
|
+
| `npx create-quiver init --name "Proyecto"` | Inicializa Quiver en un proyecto nuevo o nunca inicializado. |
|
|
262
|
+
| `npx create-quiver --name "Proyecto"` | Alias compatible del flujo de init recomendado. |
|
|
263
|
+
| `npx create-quiver init --minimal` | Crea solo el contrato esencial de onboarding. |
|
|
264
|
+
| `npx create-quiver init --full` | Crea el layout amplio de compatibilidad. |
|
|
265
|
+
| `npx create-quiver init --legacy-scripts` | Agrega wrappers Bash legacy bajo `tools/scripts/`. |
|
|
266
|
+
| `npx create-quiver init --include-templates` | Exporta templates empaquetados bajo `.quiver/templates/`. |
|
|
267
|
+
| `npx create-quiver analyze` | Genera `.quiver/scans/PROJECT_SCAN.json` y `docs/PROJECT_MAP.md`. |
|
|
268
|
+
| `npx create-quiver doctor` | Valida que el contrato de Quiver esté completo. |
|
|
269
|
+
| `npx create-quiver migrate` | Actualiza proyectos que ya fueron inicializados con Quiver. |
|
|
270
|
+
| `npx create-quiver plan` | Lista slices pendientes en orden y calcula camino crítico. |
|
|
271
|
+
| `npx create-quiver graph` | Muestra el grafo de dependencias (`tree`, `mermaid` o `dot`). |
|
|
272
|
+
| `npx create-quiver next` | Sugiere el próximo slice listo para trabajar. |
|
|
273
|
+
| `npx create-quiver start-slice <slice.json>` | Prepara worktree y contexto para ejecutar un slice. |
|
|
274
|
+
| `npx create-quiver check-slice <slice.json>` | Valida readiness del slice. |
|
|
275
|
+
| `npx create-quiver check-pr <slice.json>` | Valida estructura esperada para PR. |
|
|
276
|
+
| `npx create-quiver check-scope <slice.json>` | Verifica que los archivos modificados estén dentro del alcance declarado. |
|
|
277
|
+
| `npx create-quiver cleanup-slice <slice.json>` | Limpia worktree/branch local asociado a un slice. |
|
|
278
|
+
| `npx create-quiver refresh-active-slices` | Regenera el tablero local `ACTIVE_SLICES.md`. |
|
|
279
|
+
| `npx create-quiver check-handoff <handoff.md>` | Valida un handoff. |
|
|
280
|
+
| `npx create-quiver new-handoff <spec-slug>` | Crea un handoff para una transferencia excepcional. |
|
|
281
|
+
|
|
282
|
+
### Comandos de IA para WDD + SDD
|
|
268
283
|
|
|
269
284
|
```bash
|
|
270
|
-
npx create-quiver
|
|
271
|
-
npx create-quiver
|
|
272
|
-
npx create-quiver
|
|
285
|
+
npx create-quiver ai onboard --dry-run
|
|
286
|
+
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
287
|
+
npx create-quiver ai plan --phase technical-plan --input acceptance-approved.md --dry-run
|
|
288
|
+
npx create-quiver ai plan --phase spec --input technical-plan-approved.md --dry-run
|
|
289
|
+
npx create-quiver ai execute-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run
|
|
290
|
+
npx create-quiver ai doctor --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
291
|
+
npx create-quiver ai pr --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
273
292
|
```
|
|
274
293
|
|
|
275
|
-
|
|
294
|
+
Providers soportados: `codex`, `claude` y `gemini`, siempre vía CLI local.
|
|
295
|
+
Usá `--dry-run` primero para revisar provider, rol, context pack, prompt y paths sin ejecutar el modelo.
|
|
276
296
|
|
|
277
|
-
|
|
297
|
+
Orden recomendado:
|
|
278
298
|
|
|
279
|
-
|
|
299
|
+
1. `ai onboard`: el planner entiende el repo y el workflow.
|
|
300
|
+
2. `ai plan --phase acceptance`: convierte requerimientos en criterios de aceptación.
|
|
301
|
+
3. `ai plan --phase technical-plan`: propone el plan técnico.
|
|
302
|
+
4. `ai plan --phase spec`: genera spec, slices, handoffs y PR body.
|
|
303
|
+
5. `ai execute-slice`: ejecuta un slice aprobado con rol executor.
|
|
304
|
+
6. `ai doctor` / `ai pr`: valida preflight de GitHub y PR.
|
|
280
305
|
|
|
281
|
-
|
|
282
|
-
npx create-quiver start-slice specs/<project-slug>/slices/slice-01/slice.json
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
Cada spec vuelve a empezar en `slice-01`. El número del slice es local a esa spec, no global del repo.
|
|
286
|
-
|
|
287
|
-
### 7. Implementar y validar
|
|
306
|
+
## 🧪 Cómo probar que funciona
|
|
288
307
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
Validá el slice y el PR:
|
|
308
|
+
Validación rápida del repo:
|
|
292
309
|
|
|
293
310
|
```bash
|
|
294
|
-
|
|
295
|
-
|
|
311
|
+
node bin/create-quiver.js --help
|
|
312
|
+
node --test tests/**/*.test.js
|
|
313
|
+
npm run package:quiver
|
|
296
314
|
```
|
|
297
315
|
|
|
298
|
-
|
|
316
|
+
Validaciones adicionales disponibles:
|
|
299
317
|
|
|
300
318
|
```bash
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
### 8. Abrir PR con evidencia
|
|
305
|
-
|
|
306
|
-
La regla del workflow es:
|
|
307
|
-
|
|
308
|
-
- un slice = un commit;
|
|
309
|
-
- una spec = un PR;
|
|
310
|
-
- cada PR debe incluir evidencia de validación;
|
|
311
|
-
- las decisiones durables van en `docs/DECISIONS.md`;
|
|
312
|
-
- los aprendizajes reutilizables pueden registrarse en `docs/ai/LESSONS.md`.
|
|
313
|
-
|
|
314
|
-
## Comandos disponibles
|
|
315
|
-
|
|
316
|
-
Los comandos principales se ejecutan con `npx create-quiver ...`. En proyectos generados, también quedan disponibles scripts `npm run quiver:*` que llaman al CLI Node.
|
|
317
|
-
|
|
318
|
-
### Inicialización y mantenimiento del workflow
|
|
319
|
-
|
|
320
|
-
| Comando | Para qué sirve | Cuándo usarlo |
|
|
321
|
-
|---|---|---|
|
|
322
|
-
| `npx create-quiver --name "Proyecto"` | Inicializa Quiver en el proyecto actual. | Proyecto nuevo o proyecto existente que nunca tuvo Quiver. |
|
|
323
|
-
| `npx create-quiver --name "Proyecto" --dir ./ruta` | Inicializa o inspecciona otra carpeta explícitamente. | Cuando no estás parado en la raíz del proyecto destino. |
|
|
324
|
-
| `npx create-quiver migrate` | Actualiza una instalación previa de Quiver. | Solo en proyectos que ya fueron inicializados por Quiver. |
|
|
325
|
-
| `npx create-quiver migrate --skip-install` | Migra sin instalar `create-quiver` como dev dependency. | CI, entornos offline o migraciones donde no querés tocar dependencias. |
|
|
326
|
-
| `npx create-quiver doctor` | Valida el contrato generado y muestra pasos siguientes. | Después de init, migrate o analyze. |
|
|
327
|
-
|
|
328
|
-
### Análisis y contexto
|
|
329
|
-
|
|
330
|
-
| Comando | Para qué sirve | Resultado esperado |
|
|
331
|
-
|---|---|---|
|
|
332
|
-
| `npx create-quiver analyze` | Escanea el proyecto y genera contexto técnico. | `docs/PROJECT_SCAN.json` y `docs/PROJECT_MAP.md`. |
|
|
333
|
-
| `npx create-quiver check-handoff specs/<spec-slug>/HANDOFF.md` | Valida que un handoff exista en la ubicación correcta y tenga secciones requeridas. | Confirmación o errores accionables. |
|
|
334
|
-
| `npx create-quiver new-handoff <spec-slug>` | Crea un `HANDOFF.md` para una transferencia excepcional. | `specs/<spec-slug>/HANDOFF.md`. |
|
|
335
|
-
|
|
336
|
-
### Planificación y orquestación de slices
|
|
337
|
-
|
|
338
|
-
| Comando | Para qué sirve | Flags útiles |
|
|
339
|
-
|---|---|---|
|
|
340
|
-
| `npx create-quiver plan` | Lista slices pendientes en orden de ejecución y calcula camino crítico. | `--json`, `--only-ready`, `--spec <slug>` |
|
|
341
|
-
| `npx create-quiver graph` | Muestra el grafo de dependencias entre slices. | `--format mermaid`, `--format dot`, `--show-conflicts`, `--level <n>` |
|
|
342
|
-
| `npx create-quiver next` | Muestra el próximo slice listo para trabajar. | `--all-ready`, `--json`, `--auto-start` |
|
|
343
|
-
|
|
344
|
-
### Ejecución y validación
|
|
345
|
-
|
|
346
|
-
| Comando | Para qué sirve | Cuándo usarlo |
|
|
347
|
-
|---|---|---|
|
|
348
|
-
| `npx create-quiver start-slice <slice.json>` | Prepara el trabajo de un slice. | Al comenzar una unidad de trabajo. |
|
|
349
|
-
| `npx create-quiver start-slice --allow-draft <slice.json>` | Permite iniciar un slice en estado draft intencionalmente. | Solo cuando el equipo decide trabajar sobre un draft. |
|
|
350
|
-
| `npx create-quiver check-slice <slice.json>` | Valida readiness del slice. | Antes o durante la ejecución. |
|
|
351
|
-
| `npx create-quiver check-slice --gate validation <slice.json>` | Valida el slice en modo cierre. | Antes de marcarlo como completado. |
|
|
352
|
-
| `npx create-quiver check-pr <slice.json>` | Valida que el PR tenga la estructura esperada. | Antes de abrir o pedir review. |
|
|
353
|
-
| `npx create-quiver check-scope <slice.json>` | Revisa que los archivos tocados estén dentro del alcance declarado. | Antes de cerrar el slice. |
|
|
354
|
-
| `npx create-quiver cleanup-slice <slice.json>` | Limpia estado local asociado a un slice. | Al terminar o descartar trabajo local. |
|
|
355
|
-
| `npx create-quiver refresh-active-slices` | Regenera el tablero local de slices activos. | Cuando querés ver o refrescar actividad local. |
|
|
356
|
-
|
|
357
|
-
### Scripts npm generados
|
|
358
|
-
|
|
359
|
-
Después de inicializar o migrar, los proyectos quedan con scripts equivalentes:
|
|
360
|
-
|
|
361
|
-
```bash
|
|
362
|
-
npm run quiver:analyze
|
|
363
|
-
npm run quiver:plan
|
|
364
|
-
npm run quiver:graph
|
|
365
|
-
npm run quiver:next
|
|
366
|
-
npm run quiver:doctor
|
|
367
|
-
npm run quiver:migrate
|
|
368
|
-
npm run quiver:start-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
369
|
-
npm run quiver:check-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
370
|
-
npm run quiver:check-pr -- specs/<project-slug>/slices/slice-01/slice.json
|
|
371
|
-
npm run quiver:check-handoff -- specs/<project-slug>/HANDOFF.md
|
|
372
|
-
npm run quiver:cleanup-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
373
|
-
npm run quiver:check-scope -- specs/<project-slug>/slices/slice-01/slice.json
|
|
374
|
-
npm run quiver:refresh-active-slices
|
|
319
|
+
npm run smoke:create-quiver
|
|
320
|
+
npm run smoke:tiered-pack
|
|
375
321
|
```
|
|
376
322
|
|
|
377
|
-
|
|
323
|
+
Notas reales del estado actual:
|
|
378
324
|
|
|
379
|
-
|
|
325
|
+
- No hay script `npm test`; el comando verificado para tests es `node --test tests/**/*.test.js`.
|
|
326
|
+
- `npm run package:quiver` valida el contenido del paquete npm generado.
|
|
327
|
+
- `npm run smoke:tiered-pack` existe, pero revisar la sección "Información pendiente de confirmar" antes de usarlo como gate obligatorio.
|
|
380
328
|
|
|
381
|
-
|
|
329
|
+
## 📜 Scripts npm
|
|
382
330
|
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
- `
|
|
395
|
-
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
No todos los proyectos necesitan todos los archivos opcionales. Si un archivo no existe, no lo des por hecho: crealo desde la plantilla o registrá que falta.
|
|
331
|
+
| Script | Uso |
|
|
332
|
+
|---|---|
|
|
333
|
+
| `npm run quiver:plan` | Ejecuta `npx create-quiver plan`. |
|
|
334
|
+
| `npm run quiver:graph` | Ejecuta `npx create-quiver graph`. |
|
|
335
|
+
| `npm run quiver:next` | Ejecuta `npx create-quiver next`. |
|
|
336
|
+
| `npm run quiver:ai:onboard` | Ejecuta onboarding de IA. |
|
|
337
|
+
| `npm run quiver:ai:plan` | Ejecuta planificación IA por fases. |
|
|
338
|
+
| `npm run quiver:ai:execute-slice` | Ejecuta un slice con rol executor. |
|
|
339
|
+
| `npm run quiver:ai:doctor` | Ejecuta preflight IA/GitHub. |
|
|
340
|
+
| `npm run quiver:ai:pr` | Ejecuta preflight de PR. |
|
|
341
|
+
| `npm run package:quiver` | Empaqueta y valida el tarball npm. |
|
|
342
|
+
| `npm run smoke:create-quiver` | Smoke del instalador `create-quiver`. |
|
|
343
|
+
| `npm run smoke:tiered-pack` | Smoke de context packs y lifecycle. |
|
|
344
|
+
| `npm run release:quiver` | Release dry-run o publish, según flags. |
|
|
399
345
|
|
|
400
|
-
|
|
346
|
+
`package.json` también contiene scripts legacy como `check:slice`, `check:pr`, `start:slice`, `cleanup:slice` y `migrate` que apuntan a `tools/scripts/*`. En proyectos generados esos wrappers aparecen solo cuando se pide compatibilidad con `--legacy-scripts` o el perfil amplio `--full`; en este repo fuente requieren revisión antes de usarse directamente.
|
|
401
347
|
|
|
402
|
-
|
|
403
|
-
- Git para branches, worktrees y validaciones de PR.
|
|
404
|
-
- macOS, Linux o Windows PowerShell/CMD como entornos objetivo del runtime Node.
|
|
348
|
+
## 🔁 Flujo recomendado
|
|
405
349
|
|
|
406
|
-
|
|
350
|
+
1. Inicializá Quiver o migrá si el proyecto ya lo tenía.
|
|
351
|
+
2. Corré `analyze` para generar el mapa técnico.
|
|
352
|
+
3. Corré `doctor` para validar el contrato.
|
|
353
|
+
4. Incorporá al planner con `ai onboard --dry-run`.
|
|
354
|
+
5. Convertí requerimientos en criterios, plan técnico y spec con `ai plan`.
|
|
355
|
+
6. Revisá dependencias con `graph` y elegí el próximo trabajo con `next`.
|
|
356
|
+
7. Ejecutá el slice con `ai execute-slice` o con tu agente usando el handoff generado.
|
|
357
|
+
8. Validá con `check-slice`, `check-scope` y `check-pr`.
|
|
358
|
+
9. Cerrá el trabajo con evidencia en el PR.
|
|
407
359
|
|
|
408
|
-
##
|
|
360
|
+
## 🤝 Contribuir
|
|
409
361
|
|
|
410
|
-
|
|
362
|
+
1. Abrí un issue describiendo el problema o propuesta.
|
|
363
|
+
2. Acordá el alcance antes de implementar si hace falta.
|
|
364
|
+
3. Trabajá en un slice pequeño y revisable.
|
|
365
|
+
4. Incluí evidencia de validación en el PR.
|
|
366
|
+
5. Mantené una relación clara: un slice, un commit; una spec, un PR.
|
|
411
367
|
|
|
412
|
-
|
|
368
|
+
## 🚢 Release
|
|
413
369
|
|
|
414
|
-
|
|
415
|
-
2. `docs/PROJECT_MAP.md`
|
|
416
|
-
3. `docs/PROJECT_SCAN.json`
|
|
417
|
-
4. `docs/AI_CONTEXT.md`
|
|
418
|
-
5. `docs/AI_ONBOARDING_PROMPT.md`
|
|
419
|
-
|
|
420
|
-
Para implementar, no abras todo el repo por costumbre. Empezá por el `slice.json`, los archivos declarados, pruebas cercanas y código directamente relacionado.
|
|
421
|
-
|
|
422
|
-
## Para maintainers de Quiver
|
|
423
|
-
|
|
424
|
-
Comandos útiles para preparar releases del paquete:
|
|
370
|
+
Release dry-run:
|
|
425
371
|
|
|
426
372
|
```bash
|
|
427
|
-
npm whoami
|
|
428
|
-
npm view create-quiver version
|
|
429
|
-
npm run package:quiver
|
|
430
|
-
npm run smoke:create-quiver
|
|
431
373
|
npm run release:quiver
|
|
432
374
|
```
|
|
433
375
|
|
|
@@ -437,23 +379,35 @@ Publicar la versión actual:
|
|
|
437
379
|
bash scripts/release-quiver.sh --publish-current
|
|
438
380
|
```
|
|
439
381
|
|
|
440
|
-
Publicar con bump
|
|
382
|
+
Publicar con bump:
|
|
441
383
|
|
|
442
384
|
```bash
|
|
443
385
|
bash scripts/release-quiver.sh patch --publish
|
|
444
386
|
```
|
|
445
387
|
|
|
446
|
-
|
|
388
|
+
Antes de publicar, verificá autenticación y estado del paquete:
|
|
447
389
|
|
|
448
|
-
|
|
390
|
+
```bash
|
|
391
|
+
npm whoami
|
|
392
|
+
npm view create-quiver version
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
## 📚 Documentación útil
|
|
449
396
|
|
|
450
|
-
- [
|
|
397
|
+
- [README para agentes de IA](./README_FOR_AI.md)
|
|
451
398
|
- [Changelog](./CHANGELOG.md)
|
|
452
399
|
- [Roadmap](./ROADMAP.md)
|
|
453
400
|
- [Backlog](./BACKLOG.md)
|
|
454
|
-
- [
|
|
455
|
-
- [
|
|
456
|
-
- [
|
|
401
|
+
- [Guía de templates](./TEMPLATE.md)
|
|
402
|
+
- [Contribución](./CONTRIBUTING.md)
|
|
403
|
+
- [Seguridad](./SECURITY.md)
|
|
404
|
+
|
|
405
|
+
## Información pendiente de confirmar
|
|
406
|
+
|
|
407
|
+
- `package.json` no declara `engines`; la versión mínima real de Node queda pendiente. La CI usa Node 22.
|
|
408
|
+
- `package.json` está en `0.9.0`, igual que `CHANGELOG.md`.
|
|
409
|
+
- `docs/COMMANDS.md.template` marca algunos comandos de IA como `v0.10`, aunque `package.json` todavía está en `0.9.0`; la próxima publicación debe alinear versión y changelog.
|
|
410
|
+
- Los scripts legacy de `package.json` que apuntan a `tools/scripts/*` deben confirmarse para este repo fuente o separarse de los scripts pensados para proyectos generados con `--legacy-scripts` o `--full`.
|
|
457
411
|
|
|
458
412
|
## Licencia
|
|
459
413
|
|