create-quiver 0.14.0 → 0.14.1
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/CHANGELOG.md +11 -0
- package/README.md +183 -518
- package/README_FOR_AI.md +32 -26
- package/ROADMAP.md +5 -0
- package/assets/quiver-wordmark.svg +22 -0
- package/docs/AI_CONTEXT.md.template +2 -0
- package/docs/AI_ONBOARDING_PROMPT.md.template +9 -1
- package/docs/CLI_UX_GUIDE.md +125 -0
- package/docs/COMMANDS.md.template +16 -3
- package/docs/GITFLOW_PR_GUIDE.md +70 -0
- package/docs/getting-started/linux.md +84 -0
- package/docs/getting-started/macos.md +85 -0
- package/docs/getting-started/windows-git-bash-wsl.md +78 -0
- package/docs/getting-started/windows-powershell.md +96 -0
- package/docs/reference/commands.md +94 -0
- package/docs/workflows/existing-project.md +131 -0
- package/docs/workflows/full-ai-spec-to-pr.md +311 -0
- package/docs/workflows/legacy-quiver-project.md +102 -0
- package/docs/workflows/new-project.md +76 -0
- package/package.json +5 -1
- package/specs/quiver-v29-planner-prepare-context-cli-ux/EVIDENCE_REPORT.md +163 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/EXECUTION_PLAN.md +72 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/SPEC.md +173 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/STATUS.md +34 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/pr.md +95 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/EXECUTION_BRIEF.md +45 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-00-cli-ux-spec-foundation/slice.json +58 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/EXECUTION_BRIEF.md +49 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-01-cli-ux-primitives-theme/slice.json +75 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/EXECUTION_BRIEF.md +47 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-02-planner-context-proposal-contract/slice.json +71 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-03-prepare-context-planner-review-flow/slice.json +82 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/EXECUTION_BRIEF.md +46 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-04-ux-flag-matrix-compatibility/slice.json +73 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/EXECUTION_BRIEF.md +46 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-05-progressive-command-adoption/slice.json +83 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v29-planner-prepare-context-cli-ux/slices/slice-06-docs-tests-smoke-readiness/slice.json +95 -0
- package/src/create-quiver/commands/ai.js +458 -3
- package/src/create-quiver/commands/spec.js +64 -2
- package/src/create-quiver/index.js +49 -1
- package/src/create-quiver/lib/ai/context-proposal.js +389 -0
- package/src/create-quiver/lib/ai/context-proposal.schema.js +31 -0
- package/src/create-quiver/lib/cli/editor.js +118 -0
- package/src/create-quiver/lib/cli/theme.js +100 -0
- package/src/create-quiver/lib/cli/ux-flags.js +151 -0
- package/src/create-quiver/lib/cli/ux.js +130 -0
package/README.md
CHANGED
|
@@ -1,595 +1,260 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="./assets/quiver-wordmark.svg" alt="Quiver" width="560" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<strong>Framework AI-first para ordenar trabajo con WDD + SDD</strong>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/create-quiver"><img src="https://img.shields.io/npm/v/create-quiver" alt="version npm" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/create-quiver"><img src="https://img.shields.io/npm/dm/create-quiver" alt="descargas npm" /></a>
|
|
12
|
+
<img src="https://img.shields.io/github/license/FabriJuncal/quiver" alt="licencia" />
|
|
13
|
+
<img src="https://img.shields.io/badge/AI--first-WDD%20%2B%20SDD-blue" alt="AI-first WDD + SDD" />
|
|
14
|
+
<img src="https://img.shields.io/badge/macOS%20%7C%20Linux%20%7C%20Windows-soportado-green" alt="soporte de plataformas" />
|
|
15
|
+
</p>
|
|
16
|
+
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="#primeros-pasos">Primeros pasos</a> ·
|
|
19
|
+
<a href="./docs/workflows/existing-project.md">Proyecto existente</a> ·
|
|
20
|
+
<a href="./docs/workflows/full-ai-spec-to-pr.md">Flujo completo</a> ·
|
|
21
|
+
<a href="./docs/reference/commands.md">Comandos</a> ·
|
|
22
|
+
<a href="./docs/CLI_UX_GUIDE.md">UX del CLI</a>
|
|
23
|
+
</p>
|
|
2
24
|
|
|
3
|
-
Quiver
|
|
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.
|
|
25
|
+
# Quiver
|
|
6
26
|
|
|
7
|
-
|
|
27
|
+
Quiver es un framework de workflow para proyectos de software que quieren usar agentes de IA sin convertir el repo en una bolsa de prompts, archivos sueltos y decisiones perdidas.
|
|
8
28
|
|
|
9
|
-
|
|
29
|
+
Ayuda a transformar requerimientos en criterios de aceptación, planes técnicos, specs, slices, handoffs, evidencia de validación, commits y pull requests.
|
|
10
30
|
|
|
11
|
-
|
|
31
|
+
La idea es simple: que la IA trabaje rápido, pero con orden.
|
|
12
32
|
|
|
13
|
-
|
|
14
|
-
npx create-quiver init --name "Mi Proyecto"
|
|
15
|
-
npx create-quiver flow
|
|
16
|
-
npx create-quiver prepare --dry-run
|
|
17
|
-
npx create-quiver analyze
|
|
18
|
-
npx create-quiver doctor
|
|
19
|
-
npx create-quiver ai agent set planner --provider codex --model "planner-model" --dry-run
|
|
20
|
-
npx create-quiver ai agent set planner --provider codex --model "planner-model"
|
|
21
|
-
npx create-quiver ai agent set executor --provider codex --model "executor-model"
|
|
22
|
-
npx create-quiver ai prepare-context --dry-run
|
|
23
|
-
npx create-quiver ai onboard --dry-run
|
|
24
|
-
```
|
|
33
|
+
En lugar de pedirle a un agente "hacé esto y vemos qué pasa", Quiver propone un camino repetible:
|
|
25
34
|
|
|
26
|
-
|
|
35
|
+
1. entender el repositorio;
|
|
36
|
+
2. preparar contexto del proyecto;
|
|
37
|
+
3. planificar con aprobaciones humanas;
|
|
38
|
+
4. generar specs y slices;
|
|
39
|
+
5. ejecutar un slice por vez;
|
|
40
|
+
6. validar con evidencia;
|
|
41
|
+
7. abrir un PR por spec.
|
|
27
42
|
|
|
28
|
-
|
|
29
|
-
- `docs/PROJECT_MAP.md`
|
|
30
|
-
- `docs/AI_CONTEXT.md`
|
|
31
|
-
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
32
|
-
|
|
33
|
-
La maquinaria interna queda en `.quiver/`. Las specs reales no se crean durante el init: aparecen cuando el plan técnico ya fue revisado y aprobado, usando `spec create`.
|
|
34
|
-
|
|
35
|
-
El flujo normal con IA continúa así:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
npx create-quiver flow
|
|
39
|
-
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
40
|
-
npx create-quiver ai revise --phase acceptance --input feedback.md --dry-run
|
|
41
|
-
npx create-quiver ai approve --phase acceptance --version <n>
|
|
42
|
-
npx create-quiver ai approvals
|
|
43
|
-
npx create-quiver ai plan --phase technical-plan --dry-run
|
|
44
|
-
npx create-quiver ai review-plan --dry-run
|
|
45
|
-
npx create-quiver ai approve --phase technical-plan --version <n>
|
|
46
|
-
npx create-quiver spec create --dry-run
|
|
47
|
-
npx create-quiver spec start specs/<project-slug>
|
|
48
|
-
npx create-quiver next
|
|
49
|
-
npx create-quiver ai execute-plan --dry-run --commit --mode manual
|
|
50
|
-
npx create-quiver ai execute-plan --dry-run --commit --mode delegated
|
|
51
|
-
```
|
|
43
|
+
## ¿Qué problema resuelve?
|
|
52
44
|
|
|
53
|
-
|
|
45
|
+
Los agentes de IA pueden acelerar mucho el desarrollo, pero suelen fallar por motivos bastante normales:
|
|
54
46
|
|
|
55
|
-
|
|
47
|
+
- leen demasiado contexto o leen el contexto incorrecto;
|
|
48
|
+
- implementan antes de cerrar criterios de aceptación;
|
|
49
|
+
- saltean la aprobación del plan;
|
|
50
|
+
- mezclan cambios no relacionados en el mismo PR;
|
|
51
|
+
- olvidan qué se aprobó en una fase anterior;
|
|
52
|
+
- generan código sin evidencia clara de validación;
|
|
53
|
+
- dejan al humano reconstruyendo qué pasó.
|
|
56
54
|
|
|
57
|
-
|
|
55
|
+
Quiver reduce ese desorden convirtiendo el trabajo asistido por IA en un flujo guiado, con archivos visibles y estados verificables.
|
|
58
56
|
|
|
59
|
-
|
|
57
|
+
## ¿Cómo funciona?
|
|
60
58
|
|
|
61
|
-
|
|
62
|
-
- Windows con PowerShell: usá los mismos comandos `npx`, `npm` y `node`, pero adaptá rutas a formato Windows, por ejemplo `C:\Users\<usuario>\ssh\github-work`.
|
|
63
|
-
- Windows con Git Bash o WSL: podés usar rutas tipo Unix, por ejemplo `~/.ssh/github-work`.
|
|
64
|
-
- Los wrappers Bash bajo `tools/scripts/` son compatibilidad legacy u opcional. Para trabajo nuevo, preferí el CLI Node y los scripts `quiver:*`.
|
|
65
|
-
- Si una ruta tiene espacios, mantenela entre comillas. En los preflights de GitHub, Quiver imprime ejemplos seguros para macOS/Linux, Windows PowerShell, Git Bash y WSL.
|
|
59
|
+
Quiver combina dos metodologías:
|
|
66
60
|
|
|
67
|
-
|
|
61
|
+
- **WDD**, Workflow-Driven Development: primero se define cómo se trabaja.
|
|
62
|
+
- **SDD**, Spec-Driven Development: el trabajo se describe como specs y slices antes de implementar.
|
|
68
63
|
|
|
69
|
-
|
|
70
|
-
- `--identity-file` recibe la ruta al archivo de clave, que cambia según el sistema operativo.
|
|
71
|
-
- `gh` debe estar instalado y autenticado; Quiver lo valida con `ai doctor` o `ai pr --dry-run`, y cuando falla indica cuenta, permisos/scopes, alias SSH y próximo comando seguro.
|
|
64
|
+
En la práctica, Quiver separa planificación y ejecución:
|
|
72
65
|
|
|
73
|
-
|
|
66
|
+
- un **agente planificador** prepara criterios, plan técnico, spec, slices y cuerpo del PR;
|
|
67
|
+
- un **agente ejecutor** recibe solo el contexto mínimo de un slice y modifica código dentro del alcance aprobado;
|
|
68
|
+
- el humano aprueba las fases importantes antes de avanzar.
|
|
74
69
|
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
70
|
+
```mermaid
|
|
71
|
+
flowchart TD
|
|
72
|
+
A[Proyecto] --> B[Inicializar o migrar Quiver]
|
|
73
|
+
B --> C[Analizar y diagnosticar]
|
|
74
|
+
C --> D[Preparar contexto para IA]
|
|
75
|
+
D --> E[Planner crea criterios de aceptación]
|
|
76
|
+
E --> F[Humano aprueba criterios]
|
|
77
|
+
F --> G[Planner crea plan técnico]
|
|
78
|
+
G --> H[Revisión de plan]
|
|
79
|
+
H --> I[Humano aprueba plan]
|
|
80
|
+
I --> J[Crear spec y slices]
|
|
81
|
+
J --> K[Slice 00 documental]
|
|
82
|
+
K --> L[Plan de ejecución]
|
|
83
|
+
L --> M[Agentes ejecutores]
|
|
84
|
+
M --> N[Validación y un commit por slice]
|
|
85
|
+
N --> O[Pull request]
|
|
86
|
+
O --> P[Merge]
|
|
87
|
+
P --> Q[Cerrar spec]
|
|
81
88
|
```
|
|
82
89
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
## 🧠 Workflow principal: WDD + SDD con IA
|
|
90
|
+
## Primeros pasos
|
|
86
91
|
|
|
87
|
-
Quiver
|
|
88
|
-
|
|
89
|
-
| Etapa | Qué significa | Artefactos principales |
|
|
90
|
-
|---|---|---|
|
|
91
|
-
| 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` |
|
|
92
|
-
| 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` |
|
|
93
|
-
| IA planner | Agente que lee contexto amplio y propone criterios, plan técnico, spec y slices. | `ai prepare-context`, `ai onboard`, `ai plan` |
|
|
94
|
-
| IA executor | Agente que recibe un slice aprobado y trabaja con contexto mínimo. | `ai prompt-slice`, `ai execute-slice`, `check-scope`, `check-slice` |
|
|
95
|
-
|
|
96
|
-
Flujo recomendado:
|
|
92
|
+
Ejecutá Quiver desde la raíz del proyecto que querés preparar.
|
|
97
93
|
|
|
98
94
|
```bash
|
|
99
|
-
npx create-quiver
|
|
100
|
-
npx create-quiver flow
|
|
101
|
-
npx create-quiver
|
|
102
|
-
npx create-quiver
|
|
103
|
-
npx create-quiver ai onboard --dry-run
|
|
104
|
-
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
105
|
-
npx create-quiver ai revise --phase acceptance --input feedback.md --dry-run
|
|
106
|
-
npx create-quiver ai approve --phase acceptance --version <n>
|
|
107
|
-
npx create-quiver ai plan --phase technical-plan --dry-run
|
|
108
|
-
npx create-quiver ai review-plan --dry-run
|
|
109
|
-
npx create-quiver ai approve --phase technical-plan --version <n>
|
|
110
|
-
npx create-quiver spec create --dry-run
|
|
111
|
-
npx create-quiver spec start specs/<project-slug>
|
|
112
|
-
npx create-quiver graph
|
|
113
|
-
npx create-quiver next
|
|
114
|
-
npx create-quiver ai prompt-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run
|
|
115
|
-
npx create-quiver ai execute-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run --commit
|
|
116
|
-
npx create-quiver ai execute-plan --dry-run --commit --mode delegated
|
|
117
|
-
npx create-quiver ai pr --dry-run --input specs/<project-slug>/pr.md --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
95
|
+
npx --yes create-quiver@latest init --name "Mi Proyecto"
|
|
96
|
+
npx --yes create-quiver@latest flow
|
|
97
|
+
npx --yes create-quiver@latest analyze
|
|
98
|
+
npx --yes create-quiver@latest doctor
|
|
118
99
|
```
|
|
119
100
|
|
|
120
|
-
|
|
101
|
+
Después prepará el contexto para IA:
|
|
121
102
|
|
|
122
103
|
```bash
|
|
123
|
-
npx --yes create-quiver
|
|
104
|
+
npx --yes create-quiver@latest ai prepare-context --dry-run
|
|
105
|
+
npx --yes create-quiver@latest ai prepare-context
|
|
124
106
|
```
|
|
125
107
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
## 🛠️ Empezar a usar Quiver según tu caso
|
|
129
|
-
|
|
130
|
-
### 1. Proyecto nuevo desde cero
|
|
131
|
-
|
|
132
|
-
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.
|
|
108
|
+
Ese flujo usa el modo determinístico de Quiver: analiza el proyecto y actualiza solo documentación de contexto sin llamar a un proveedor de IA. Si querés que un agente planificador proponga el contexto, usá el modo asistido:
|
|
133
109
|
|
|
134
110
|
```bash
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
npx create-quiver init --name "Mi Proyecto"
|
|
138
|
-
npx create-quiver flow
|
|
139
|
-
npx create-quiver prepare --dry-run
|
|
140
|
-
npx create-quiver analyze
|
|
141
|
-
npx create-quiver doctor
|
|
142
|
-
npx create-quiver ai prepare-context --dry-run
|
|
143
|
-
npx create-quiver ai onboard --dry-run
|
|
111
|
+
npx --yes create-quiver@latest ai prepare-context --with-planner --dry-run
|
|
112
|
+
npx --yes create-quiver@latest ai prepare-context --with-planner --review --interactive
|
|
144
113
|
```
|
|
145
114
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
- Quiver crea un contrato visible chico: `AGENTS.md`, `docs/`, `.gitignore`, scripts `quiver:*` en `package.json` y configuración interna en `.quiver/`.
|
|
149
|
-
- No crea `docs-template/`, `tools/scripts/` ni una spec placeholder en el flujo default.
|
|
150
|
-
- `analyze` crea el scan crudo en `.quiver/scans/PROJECT_SCAN.json` y el mapa legible en `docs/PROJECT_MAP.md`.
|
|
151
|
-
- `doctor` valida que el contrato inicial esté completo.
|
|
152
|
-
- `ai prepare-context --dry-run` muestra borradores y supuestos sin escribir; `ai onboard --dry-run` muestra cómo se incorporaría un agente planner sin ejecutar el provider todavía.
|
|
115
|
+
La inicialización crea un contrato visible para humanos y agentes, más estado interno de Quiver:
|
|
153
116
|
|
|
154
|
-
Después del bootstrap, revisá:
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
158
|
-
npx create-quiver ai revise --phase acceptance --input feedback.md --dry-run
|
|
159
|
-
npx create-quiver ai approve --phase acceptance --version <n>
|
|
160
|
-
npx create-quiver ai plan --phase technical-plan --dry-run
|
|
161
|
-
npx create-quiver ai review-plan --dry-run
|
|
162
|
-
npx create-quiver ai approve --phase technical-plan --version <n>
|
|
163
|
-
npx create-quiver spec create --dry-run
|
|
164
|
-
npx create-quiver plan
|
|
165
|
-
npx create-quiver graph
|
|
166
|
-
npx create-quiver next
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
### 2. Proyecto ya iniciado sin Quiver
|
|
170
|
-
|
|
171
|
-
Usá este camino cuando el repo ya tiene código, pero nunca fue inicializado con Quiver.
|
|
172
|
-
|
|
173
|
-
Primero revisá el estado actual:
|
|
174
|
-
|
|
175
|
-
```bash
|
|
176
|
-
git status --short
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
Si hay cambios pendientes, conviene guardarlos, commitearlos o crear una rama dedicada para que el diff de onboarding sea fácil de revisar.
|
|
180
|
-
|
|
181
|
-
Luego inicializá Quiver desde la raíz del proyecto:
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
npx create-quiver init --name "Nombre del Proyecto"
|
|
185
|
-
npx create-quiver flow
|
|
186
|
-
npx create-quiver analyze
|
|
187
|
-
npx create-quiver doctor
|
|
188
|
-
npx create-quiver ai agent set planner --provider codex --model "planner-model"
|
|
189
|
-
npx create-quiver ai agent set executor --provider codex --model "executor-model"
|
|
190
|
-
npx create-quiver ai prepare-context --dry-run
|
|
191
|
-
npx create-quiver ai onboard --dry-run
|
|
192
|
-
git status --short
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
Qué esperar:
|
|
196
|
-
|
|
197
|
-
- Quiver agrega documentación, scripts `quiver:*` y archivos internos de soporte en `.quiver/`.
|
|
198
|
-
- No deberías mezclar este paso con cambios de producto.
|
|
199
|
-
- `docs/PROJECT_MAP.md` queda como fuente de verdad para stack, package manager, comandos y rutas importantes.
|
|
200
|
-
- Las specs y slices reales se crean después, con `spec create`, cuando ya existen criterios aprobados y un plan técnico revisado y aprobado.
|
|
201
|
-
- El primer trabajo de IA debería ser preparar contexto y planificación, no implementar.
|
|
202
|
-
|
|
203
|
-
Importante: no uses `migrate` para un proyecto que nunca tuvo Quiver. `migrate` es solo para proyectos previamente inicializados.
|
|
204
|
-
|
|
205
|
-
### 3. Proyecto iniciado con una versión vieja de Quiver
|
|
206
|
-
|
|
207
|
-
Usá este camino cuando el repo ya tiene señales de Quiver, pero querés actualizarlo al contrato actual.
|
|
208
|
-
|
|
209
|
-
Señales típicas de una instalación previa:
|
|
210
|
-
|
|
211
|
-
- `.quiver/state.json`
|
|
212
117
|
- `AGENTS.md`
|
|
118
|
+
- `docs/`
|
|
213
119
|
- `docs/AI_CONTEXT.md`
|
|
120
|
+
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
214
121
|
- `docs/PROJECT_MAP.md`
|
|
215
|
-
-
|
|
216
|
-
-
|
|
217
|
-
- scripts `quiver:*` o scripts legacy en `package.json`
|
|
218
|
-
|
|
219
|
-
Desde la raíz del proyecto:
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
npx create-quiver doctor
|
|
223
|
-
npx create-quiver migrate
|
|
224
|
-
npx create-quiver analyze
|
|
225
|
-
npx create-quiver doctor
|
|
226
|
-
npx create-quiver ai prepare-context --dry-run
|
|
227
|
-
npx create-quiver ai onboard --dry-run
|
|
228
|
-
git status --short
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
Si estás en CI, offline o no querés que la migración instale dependencias automáticamente:
|
|
122
|
+
- `.quiver/`
|
|
123
|
+
- scripts `quiver:*` en `package.json`
|
|
232
124
|
|
|
233
|
-
|
|
234
|
-
npx create-quiver migrate --skip-install
|
|
235
|
-
```
|
|
125
|
+
Las specs se crean después, cuando los criterios de aceptación y el plan técnico ya fueron aprobados.
|
|
236
126
|
|
|
237
|
-
|
|
127
|
+
## Elegí tu sistema operativo
|
|
238
128
|
|
|
239
|
-
|
|
240
|
-
- No debería sobrescribir archivos existentes de proyecto sin necesidad.
|
|
241
|
-
- Después de migrar, `analyze` actualiza el mapa técnico y `doctor` confirma los próximos pasos.
|
|
242
|
-
- `ai prepare-context --dry-run` ayuda a revisar supuestos del contexto migrado; `ai onboard --dry-run` valida que el contexto viejo quedó entendible para un agente planner.
|
|
129
|
+
Empezá por acá si estás configurando Quiver por primera vez en una máquina:
|
|
243
130
|
|
|
244
|
-
|
|
131
|
+
- [macOS](./docs/getting-started/macos.md)
|
|
132
|
+
- [Linux](./docs/getting-started/linux.md)
|
|
133
|
+
- [Windows PowerShell](./docs/getting-started/windows-powershell.md)
|
|
134
|
+
- [Windows Git Bash / WSL](./docs/getting-started/windows-git-bash-wsl.md)
|
|
245
135
|
|
|
246
|
-
##
|
|
136
|
+
## Elegí tu flujo
|
|
247
137
|
|
|
248
|
-
|
|
138
|
+
Usá la guía que corresponda al estado de tu proyecto:
|
|
249
139
|
|
|
250
|
-
-
|
|
251
|
-
-
|
|
252
|
-
-
|
|
253
|
-
-
|
|
254
|
-
- checks de readiness, PR, handoff y scope;
|
|
255
|
-
- plantillas de contribución, soporte, seguridad, changelog y GitHub Actions.
|
|
140
|
+
- [Proyecto nuevo desde cero](./docs/workflows/new-project.md)
|
|
141
|
+
- [Proyecto existente sin Quiver](./docs/workflows/existing-project.md)
|
|
142
|
+
- [Proyecto existente con una versión vieja de Quiver](./docs/workflows/legacy-quiver-project.md)
|
|
143
|
+
- [Flujo completo con IA: requerimiento, spec, slices, commits y PR](./docs/workflows/full-ai-spec-to-pr.md)
|
|
256
144
|
|
|
257
|
-
|
|
145
|
+
## Comandos principales
|
|
258
146
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
| Área | Tecnología detectada |
|
|
262
|
-
|---|---|
|
|
263
|
-
| Runtime | Node.js CLI |
|
|
264
|
-
| Lenguaje | JavaScript CommonJS |
|
|
265
|
-
| Package manager | npm (`package-lock.json`) |
|
|
266
|
-
| Binario npm | `create-quiver` y alias `quiver` -> `bin/create-quiver.js` |
|
|
267
|
-
| Tests | Node built-in test runner (`node:test`) |
|
|
268
|
-
| CI/CD | GitHub Actions |
|
|
269
|
-
| Distribución | Paquete npm público `create-quiver` |
|
|
270
|
-
| Base de datos | No detectada |
|
|
271
|
-
| Docker / Compose | No detectado |
|
|
272
|
-
| Prisma / Supabase / migrations / seeders | No detectados |
|
|
273
|
-
|
|
274
|
-
## 📦 Requisitos
|
|
275
|
-
|
|
276
|
-
- Node.js 22.x recomendado. La CI usa Node 22, aunque `package.json` todavía no declara `engines`.
|
|
277
|
-
- npm.
|
|
278
|
-
- Git, especialmente para ramas y worktrees.
|
|
279
|
-
- `shellcheck` si querés replicar localmente el job de CI que valida scripts Bash.
|
|
280
|
-
- Opcional: `gh` para preflight de PR con GitHub.
|
|
281
|
-
- CLI local de `codex`, `claude` o `gemini` si vas a ejecutar comandos de IA sin `--dry-run`.
|
|
282
|
-
|
|
283
|
-
No se detectaron archivos `.env`; Quiver no requiere variables de entorno para el flujo básico.
|
|
284
|
-
|
|
285
|
-
## 📁 Estructura del proyecto
|
|
286
|
-
|
|
287
|
-
| Ruta | Propósito |
|
|
147
|
+
| Comando | Qué hace |
|
|
288
148
|
|---|---|
|
|
289
|
-
| `
|
|
290
|
-
| `
|
|
291
|
-
| `
|
|
292
|
-
| `
|
|
293
|
-
| `
|
|
294
|
-
| `
|
|
295
|
-
| `
|
|
296
|
-
| `
|
|
297
|
-
| `
|
|
298
|
-
| `
|
|
299
|
-
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
|
149
|
+
| `npx --yes create-quiver@latest --help` | Muestra la lista pública de comandos. |
|
|
150
|
+
| `npx --yes create-quiver@latest --version` | Muestra la versión del CLI. |
|
|
151
|
+
| `npx --yes create-quiver@latest init --name "Proyecto"` | Inicializa Quiver en un proyecto. |
|
|
152
|
+
| `npx --yes create-quiver@latest migrate --dry-run` | Previsualiza la migración de un proyecto Quiver anterior. |
|
|
153
|
+
| `npx --yes create-quiver@latest analyze` | Genera el mapa del proyecto usado por humanos y agentes. |
|
|
154
|
+
| `npx --yes create-quiver@latest doctor` | Revisa si el contrato de Quiver está sano. |
|
|
155
|
+
| `npx --yes create-quiver@latest flow` | Indica el próximo paso seguro. |
|
|
156
|
+
| `npx --yes create-quiver@latest ai prepare-context --dry-run` | Previsualiza contexto de onboarding para IA sin tocar código de producto. |
|
|
157
|
+
| `npx --yes create-quiver@latest ai prepare-context --with-planner --dry-run` | Previsualiza una propuesta de contexto generada por el planner. |
|
|
158
|
+
| `npx --yes create-quiver@latest ai plan --phase acceptance` | Genera un borrador de criterios de aceptación. |
|
|
159
|
+
| `npx --yes create-quiver@latest ai plan --phase technical-plan` | Genera un borrador de plan técnico. |
|
|
160
|
+
| `npx --yes create-quiver@latest ai review-plan` | Revisa el plan técnico antes de aprobarlo. |
|
|
161
|
+
| `npx --yes create-quiver@latest spec create` | Crea spec, slices, briefs, plan de ejecución y cuerpo del PR. |
|
|
162
|
+
| `npx --yes create-quiver@latest spec start specs/<spec>` | Crea o reutiliza el worktree de una spec. |
|
|
163
|
+
| `npx --yes create-quiver@latest next --all-ready --spec <spec>` | Lista los slices listos para ejecutar. |
|
|
164
|
+
| `npx --yes create-quiver@latest ai execute-slice --slice <slice.json> --commit` | Ejecuta un slice aprobado y lo commitea después de validar. |
|
|
165
|
+
| `npx --yes create-quiver@latest ai pr --dry-run --input specs/<spec>/pr.md` | Previsualiza la creación del PR y el estado de GitHub. |
|
|
166
|
+
| `npx --yes create-quiver@latest spec close specs/<spec>` | Cierra el worktree de una spec ya mergeada. |
|
|
167
|
+
|
|
168
|
+
La referencia completa está en [docs/reference/commands.md](./docs/reference/commands.md).
|
|
169
|
+
|
|
170
|
+
## UX del CLI
|
|
171
|
+
|
|
172
|
+
Quiver usa un estándar único para que los comandos sean claros tanto para humanos como para automatizaciones:
|
|
173
|
+
|
|
174
|
+
- `--dry-run` muestra qué pasaría sin escribir ni ejecutar proveedores.
|
|
175
|
+
- `--print-prompt` imprime el prompt exacto y no ejecuta IA.
|
|
176
|
+
- `--with-planner` activa un modo asistido por planner solo en comandos que lo soportan.
|
|
177
|
+
- `--review` abre o prepara una revisión humana antes de escrituras persistentes.
|
|
178
|
+
- `--interactive` habilita confirmaciones explícitas cuando el comando puede cambiar estado.
|
|
179
|
+
- `--json` mantiene salida legible por máquinas y no se combina con `--interactive` ni `--review`.
|
|
180
|
+
- `--no-color` desactiva colores cuando el entorno no los necesita.
|
|
181
|
+
|
|
182
|
+
El detalle del estándar, la matriz de comandos y los colores de Quiver están en [docs/CLI_UX_GUIDE.md](./docs/CLI_UX_GUIDE.md).
|
|
183
|
+
|
|
184
|
+
## ¿Qué crea Quiver?
|
|
185
|
+
|
|
186
|
+
Quiver deja visible la documentación útil del proyecto y guarda su estado interno en `.quiver/`.
|
|
187
|
+
|
|
188
|
+
| Ruta | Para qué sirve |
|
|
306
189
|
|---|---|
|
|
307
|
-
| `
|
|
308
|
-
| `
|
|
309
|
-
| `
|
|
310
|
-
| `
|
|
311
|
-
| `
|
|
312
|
-
|
|
313
|
-
|
|
190
|
+
| `AGENTS.md` | Punto de entrada para agentes de IA. |
|
|
191
|
+
| `docs/AI_CONTEXT.md` | Contexto compacto del proyecto para agentes. |
|
|
192
|
+
| `docs/AI_ONBOARDING_PROMPT.md` | Prompt que un agente puede ejecutar para hacer onboarding seguro. |
|
|
193
|
+
| `docs/PROJECT_MAP.md` | Stack, package manager, scripts y datos del proyecto. |
|
|
194
|
+
| `docs/WORKFLOW.md` | Contrato local de trabajo. |
|
|
195
|
+
| `specs/<spec>/SPEC.md` | Spec aprobada. |
|
|
196
|
+
| `specs/<spec>/slices/<slice>/slice.json` | Contrato del slice: alcance, dependencias y validación. |
|
|
197
|
+
| `EXECUTION_BRIEF.md` | Lo que necesita saber el agente ejecutor. |
|
|
198
|
+
| `CLOSURE_BRIEF.md` | Qué se hizo, qué se validó y qué quedó pendiente. |
|
|
199
|
+
| `.quiver/` | Estado interno: runs, approvals, scans, snapshots y agentes. |
|
|
314
200
|
|
|
315
|
-
##
|
|
201
|
+
## Para agentes de IA
|
|
316
202
|
|
|
317
|
-
Los comandos
|
|
318
|
-
El paquete también publica el alias binario `quiver`, que apunta al mismo CLI. Usalo cuando el paquete ya esté instalado localmente; para bootstrap remoto, seguí usando `npx create-quiver`.
|
|
319
|
-
|
|
320
|
-
| Comando | Para qué sirve |
|
|
321
|
-
|---|---|
|
|
322
|
-
| `npx create-quiver init --name "Proyecto"` | Inicializa Quiver en un proyecto nuevo o nunca inicializado. |
|
|
323
|
-
| `npx create-quiver --name "Proyecto"` | Alias compatible del flujo de init recomendado. |
|
|
324
|
-
| `npx create-quiver --version` | Muestra la versión instalada del CLI. |
|
|
325
|
-
| `npx create-quiver --help` | Lista todos los comandos públicos con descripción, opciones principales y ejemplos recomendados. |
|
|
326
|
-
| `npx create-quiver help` | Alias legible de la ayuda completa. |
|
|
327
|
-
| `quiver --help` | Muestra la misma ayuda cuando Quiver ya está instalado localmente. |
|
|
328
|
-
| `npx create-quiver flow` | Muestra el estado inicial del flujo guiado, la fuente/frescura del contexto, el package manager detectado, el script `quiver:flow` correcto y el próximo comando seguro sin escribir estado ni llamar providers. |
|
|
329
|
-
| `npx create-quiver ai agent set <role> --provider <provider> --model <label> --dry-run` | Previsualiza el perfil que se guardaría sin escribir `.quiver/agents/profiles.json`. |
|
|
330
|
-
| `npx create-quiver ai agent set <role> --provider <provider> --model <label>` | Guarda perfiles reutilizables para planner, executor, reviewer o doctor sin guardar secretos. |
|
|
331
|
-
| `npx create-quiver ai agent list` | Lista los perfiles configurados. |
|
|
332
|
-
| `npx create-quiver ai agent show <role>` | Muestra un perfil específico. |
|
|
333
|
-
| `npx create-quiver ai run create --input requirements.md` | Crea un run persistente en `.quiver/runs/` para un requerimiento. |
|
|
334
|
-
| `npx create-quiver ai status` | Muestra la fase actual del run AI y el próximo comando seguro. |
|
|
335
|
-
| `npx create-quiver ai resume` | Reanuda el run AI desde la última fase válida sin depender del historial del chat. |
|
|
336
|
-
| `npx create-quiver ai inspect` | Resume specs, slices, runs, agentes, layout y próximos comandos accionables. |
|
|
337
|
-
| `npx create-quiver ai export --format json` | Exporta estado de specs, slices, runs, agentes, dependencias y migración para dashboards o agentes. |
|
|
338
|
-
| `npx create-quiver ai export --format markdown` | Exporta el mismo estado en Markdown legible para PRs o docs. |
|
|
339
|
-
| `npx create-quiver ai active-slice reconcile --dry-run` | Inspecciona y reconcilia en modo lectura el estado local del slice activo entre `docs/ai/ACTIVE_SLICE.md` y `ACTIVE_SLICES.md`. |
|
|
340
|
-
| `npx create-quiver ai specs list` | Lista specs con estado, progreso y cantidad de slices. |
|
|
341
|
-
| `npx create-quiver ai slices list` | Lista slices con estado, progreso, dependencias y bloqueos. |
|
|
342
|
-
| `npx create-quiver ai trace report` | Muestra runs, olas de ejecución y estado de migración en formato humano. |
|
|
343
|
-
| `npx create-quiver ai approvals` | Muestra drafts versionados y aprobados por fase. |
|
|
344
|
-
| `npx create-quiver ai approve --phase acceptance --version <n>` | Aprueba una versión concreta de un draft guardado. |
|
|
345
|
-
| `npx create-quiver init --minimal` | Crea solo el contrato esencial de onboarding. |
|
|
346
|
-
| `npx create-quiver init --full` | Crea el layout amplio de compatibilidad. |
|
|
347
|
-
| `npx create-quiver init --legacy-scripts` | Agrega wrappers Bash legacy bajo `tools/scripts/`. |
|
|
348
|
-
| `npx create-quiver init --include-templates` | Exporta templates empaquetados bajo `.quiver/templates/`. |
|
|
349
|
-
| `npx create-quiver analyze --dry-run` | Previsualiza el scan, el mapa de proyecto y el refresh de contexto sin escribir archivos. |
|
|
350
|
-
| `npx create-quiver analyze` | Genera `.quiver/scans/PROJECT_SCAN.json`, `docs/PROJECT_MAP.md` y refresca `docs/AI_CONTEXT.md`. |
|
|
351
|
-
| `npx create-quiver doctor` | Valida que el contrato de Quiver esté completo. |
|
|
352
|
-
| `npx create-quiver doctor --fix --dry-run` | Muestra reparaciones seguras sin escribir archivos. |
|
|
353
|
-
| `npx create-quiver doctor --fix` | Aplica reparaciones no destructivas e idempotentes. |
|
|
354
|
-
| `npx create-quiver prepare --dry-run` | Ejecuta diagnóstico guiado de preparación sin escribir archivos. |
|
|
355
|
-
| `npx create-quiver prepare` | Refresca contexto y muestra riesgos, supuestos y próximos comandos. |
|
|
356
|
-
| `npx create-quiver ai prepare-context --dry-run` | Previsualiza docs de onboarding, diffs, supuestos, riesgos, contradicciones y rutas omitidas sin escribir. |
|
|
357
|
-
| `npx create-quiver migrate` | Actualiza proyectos que ya fueron inicializados con Quiver. |
|
|
358
|
-
| `npx create-quiver migrate --dry-run` | Muestra qué actualizaría la migración sin escribir archivos. |
|
|
359
|
-
| `npx create-quiver plan` | Lista slices pendientes en orden y calcula camino crítico. |
|
|
360
|
-
| `npx create-quiver graph` | Muestra el grafo de dependencias (`tree`, `mermaid` o `dot`). |
|
|
361
|
-
| `npx create-quiver next` | Sugiere el próximo slice listo para trabajar. |
|
|
362
|
-
| `npx create-quiver plan --include-completed` | Muestra slices completados para auditoría o demos. |
|
|
363
|
-
| `npx create-quiver graph --include-completed` | Incluye slices completados en el grafo histórico. |
|
|
364
|
-
| `npx create-quiver next --include-completed` | Mantiene la recomendación accionable y agrega historial completado. |
|
|
365
|
-
| `npx create-quiver spec create` | Crea la spec real desde el plan técnico revisado y aprobado. |
|
|
366
|
-
| `npx create-quiver spec start <spec-dir>` | Crea o reutiliza el worktree dedicado de una spec. Usá `--dry-run` para ver qué worktree se crearía sin tocar Git. |
|
|
367
|
-
| `npx create-quiver spec status <spec-dir>` | Muestra branch, path, `slice-00` y slices pendientes. |
|
|
368
|
-
| `npx create-quiver spec validate <spec-dir>` | Valida documentos de spec, slices, briefs, evidencia, estado, dependencias y rutas seguras. |
|
|
369
|
-
| `npx create-quiver spec close <spec-dir>` | Cierra un worktree de spec ya mergeado y limpio; en modo normal también intenta traer los cambios del merge al checkout principal. |
|
|
370
|
-
| `npx create-quiver start-slice <slice.json>` | Prepara worktree y contexto para ejecutar un slice. |
|
|
371
|
-
| `npx create-quiver check-slice <slice.json>` | Valida readiness del slice. |
|
|
372
|
-
| `npx create-quiver check-slice --local <slice.json>` | Valida estructura local sin exigir remoto/base. |
|
|
373
|
-
| `npx create-quiver check-pr <slice.json>` | Valida estructura esperada para PR. |
|
|
374
|
-
| `npx create-quiver check-scope <slice.json>` | Verifica que los archivos modificados estén dentro del alcance declarado. |
|
|
375
|
-
| `npx create-quiver cleanup-slice <slice.json>` | Limpia worktree/branch local asociado a un slice. |
|
|
376
|
-
| `npx create-quiver refresh-active-slices` | Regenera el tablero local `ACTIVE_SLICES.md`. |
|
|
377
|
-
| `npx create-quiver check-handoff <handoff-or-brief.md>` | Valida un `HANDOFF.md` o un brief de slice (`EXECUTION_BRIEF.md` / `CLOSURE_BRIEF.md`). |
|
|
378
|
-
| `npx create-quiver new-handoff <spec-slug>` | Crea un handoff para una transferencia excepcional. |
|
|
379
|
-
| `npx create-quiver evidence run -- <comando>` | Ejecuta un comando y guarda evidencia local con exit code, duración y salida redactada/truncada. |
|
|
380
|
-
| `npx create-quiver demo create spec-viewer --dry-run` | Previsualiza el demo opcional Quiver Spec Viewer sin escribir archivos. |
|
|
381
|
-
| `npx create-quiver demo create spec-viewer --dir <target>` | Crea el demo estático con app, spec, slices, handoffs y validación. |
|
|
382
|
-
|
|
383
|
-
### Comandos de IA para WDD + SDD
|
|
203
|
+
Los comandos pensados para agentes deberían usar una versión explícita y modo no interactivo:
|
|
384
204
|
|
|
385
205
|
```bash
|
|
386
|
-
npx create-quiver ai
|
|
387
|
-
npx create-quiver ai onboard --dry-run
|
|
388
|
-
npx create-quiver ai onboard --print-prompt
|
|
389
|
-
npx create-quiver ai agent set planner --provider codex --model "planner-model" --dry-run
|
|
390
|
-
npx create-quiver ai agent set planner --provider codex --model "planner-model"
|
|
391
|
-
npx create-quiver ai agent set executor --provider codex --model "executor-model"
|
|
392
|
-
npx create-quiver ai agent set doctor --provider codex --model "diagnostic-model"
|
|
393
|
-
npx create-quiver ai agent list
|
|
394
|
-
npx create-quiver ai plan --phase acceptance --input requirements.md --dry-run
|
|
395
|
-
npx create-quiver ai plan --phase acceptance --input requirements.md --print-prompt
|
|
396
|
-
npx create-quiver ai revise --phase acceptance --input feedback.md --dry-run
|
|
397
|
-
npx create-quiver ai approve --phase acceptance --version <n>
|
|
398
|
-
npx create-quiver ai plan --phase technical-plan --dry-run
|
|
399
|
-
npx create-quiver ai review-plan --dry-run
|
|
400
|
-
npx create-quiver ai review-plan --print-prompt
|
|
401
|
-
npx create-quiver ai approve --phase technical-plan --version <n>
|
|
402
|
-
npx create-quiver spec create --dry-run
|
|
403
|
-
npx create-quiver ai prompt-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run
|
|
404
|
-
npx create-quiver ai execute-slice --slice specs/<project-slug>/slices/slice-01/slice.json --dry-run --commit
|
|
405
|
-
npx create-quiver ai execute-plan --dry-run --commit --mode manual
|
|
406
|
-
npx create-quiver ai execute-plan --dry-run --commit --mode delegated
|
|
407
|
-
npx create-quiver ai doctor --dry-run --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
408
|
-
npx create-quiver ai pr --dry-run --input specs/<project-slug>/pr.md --ssh-host-alias github-work --identity-file ~/.ssh/github-work
|
|
206
|
+
npx --yes create-quiver@latest ai prompt-slice --slice specs/<spec>/slices/<slice>/slice.json --dry-run
|
|
409
207
|
```
|
|
410
208
|
|
|
411
|
-
|
|
412
|
-
|
|
209
|
+
Quiver puede trabajar con CLIs locales de proveedores como:
|
|
210
|
+
|
|
211
|
+
- `codex`
|
|
212
|
+
- `claude`
|
|
213
|
+
- `gemini`
|
|
413
214
|
|
|
414
|
-
|
|
215
|
+
Las credenciales las manejan esos CLIs. Quiver no guarda API keys en los perfiles de agentes.
|
|
415
216
|
|
|
416
|
-
|
|
417
|
-
2. `ai onboard`: el planner entiende el repo y el workflow.
|
|
418
|
-
3. `ai plan --phase acceptance`: convierte requerimientos en criterios de aceptación.
|
|
419
|
-
4. `ai plan --phase technical-plan`: propone el plan técnico.
|
|
420
|
-
5. `ai review-plan`: revisa el plan como si fuera a producción, sin tocar código ni cuestionar el alcance aprobado. La salida guarda metadata con recomendación `approve`, `approve-with-risk` o `revise`.
|
|
421
|
-
6. `ai approve`: guarda criterios o la versión revisada del plan técnico.
|
|
422
|
-
7. `spec create`: genera spec, slices, handoffs y PR body desde el plan revisado y aprobado.
|
|
423
|
-
8. `spec start`: prepara un worktree por spec.
|
|
424
|
-
9. `ai prompt-slice`: imprime el prompt mínimo para asignar un slice manualmente.
|
|
425
|
-
10. `ai execute-slice` / `ai execute-plan`: ejecuta slices aprobados, con commit opt-in. `ai execute-slice` exige worktree/rama correctos, bloquea cambios fuera del alcance declarado, redacta logs sensibles y actualiza `CLOSURE_BRIEF.md`, `EVIDENCE_REPORT.md`, `COMMAND_LOG.md`, `STATUS.md` y `slice.json` cuando la ejecución pasa. Usá `--mode manual` para prompts y `--mode delegated` para worktrees temporales en olas paralelas.
|
|
426
|
-
11. `ai inspect` / `ai export`: exponen estado accionable y formatos JSON/Markdown para humanos, agentes o dashboards.
|
|
427
|
-
12. `ai doctor` / `ai pr`: valida GitHub y crea el PR solo con `--create`.
|
|
428
|
-
13. `spec close`: cierra el worktree después del merge.
|
|
217
|
+
## Requisitos
|
|
429
218
|
|
|
430
|
-
|
|
219
|
+
- Node.js y npm.
|
|
220
|
+
- Git.
|
|
221
|
+
- `gh` para crear pull requests en GitHub.
|
|
222
|
+
- Un CLI local de proveedor si querés que Quiver invoque IA directamente.
|
|
431
223
|
|
|
432
|
-
|
|
224
|
+
El CLI está pensado para macOS, Linux, Windows PowerShell, Git Bash y WSL.
|
|
225
|
+
|
|
226
|
+
## Desarrollar Quiver
|
|
433
227
|
|
|
434
228
|
```bash
|
|
229
|
+
git clone <repo-url>
|
|
230
|
+
cd quiver
|
|
231
|
+
npm install
|
|
435
232
|
node bin/create-quiver.js --help
|
|
436
233
|
node --test tests/**/*.test.js
|
|
437
234
|
npm run package:quiver
|
|
438
|
-
npm pack --dry-run
|
|
439
235
|
```
|
|
440
236
|
|
|
441
|
-
|
|
237
|
+
Validación de release:
|
|
442
238
|
|
|
443
239
|
```bash
|
|
444
240
|
npm run smoke:create-quiver
|
|
445
241
|
npm run smoke:doctor-fixtures
|
|
446
242
|
npm run smoke:guided-workflow
|
|
447
243
|
npm run smoke:tiered-pack
|
|
244
|
+
npm run package:quiver
|
|
245
|
+
npm pack --dry-run
|
|
448
246
|
```
|
|
449
247
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
```bash
|
|
453
|
-
npx create-quiver evidence run -- npm test
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
Por defecto la evidencia queda en `.quiver/evidence/`. También podés elegir destino con `--output <archivo>` y limitar stdout/stderr con `--max-output <n>`.
|
|
457
|
-
|
|
458
|
-
Para probar Quiver sin inventar una app desde cero:
|
|
459
|
-
|
|
460
|
-
```bash
|
|
461
|
-
npx create-quiver demo create spec-viewer --dry-run
|
|
462
|
-
npx create-quiver demo create spec-viewer --dir ./quiver-spec-viewer
|
|
463
|
-
```
|
|
464
|
-
|
|
465
|
-
El demo genera una app estática pequeña, metadata mínima de Quiver, specs/slices de ejemplo y scripts de validación. `doctor`, `plan`, `graph` y `next` funcionan dentro del demo, y el server intenta el siguiente puerto si el inicial está ocupado. No forma parte de `init`; se crea solo cuando lo pedís.
|
|
466
|
-
|
|
467
|
-
Notas reales del estado actual:
|
|
468
|
-
|
|
469
|
-
- No hay script `npm test`; el comando verificado para tests es `node --test tests/**/*.test.js`.
|
|
470
|
-
- `npm run package:quiver` valida el contenido del paquete npm generado.
|
|
471
|
-
- `npm run smoke:guided-workflow` cubre el flujo guiado con IA sin llamadas reales pagas a providers.
|
|
472
|
-
- `npm run smoke:doctor-fixtures` valida la matriz de estados de proyecto que deben seguir cubiertos por doctor/preflight.
|
|
473
|
-
|
|
474
|
-
## 📜 Scripts npm
|
|
475
|
-
|
|
476
|
-
| Script | Uso |
|
|
477
|
-
|---|---|
|
|
478
|
-
| `npm run quiver:analyze` | Ejecuta `npx create-quiver analyze`; usalo con `-- --dry-run` para previsualizar sin escribir. |
|
|
479
|
-
| `npm run quiver:flow` | Ejecuta `npx create-quiver flow`. |
|
|
480
|
-
| `npm run quiver:plan` | Ejecuta `npx create-quiver plan`. |
|
|
481
|
-
| `npm run quiver:prepare` | Ejecuta preparación guiada y diagnósticos. |
|
|
482
|
-
| `npm run quiver:graph` | Ejecuta `npx create-quiver graph`. |
|
|
483
|
-
| `npm run quiver:next` | Ejecuta `npx create-quiver next`. |
|
|
484
|
-
| `npm run quiver:doctor` | Ejecuta `npx create-quiver doctor`. |
|
|
485
|
-
| `npm run quiver:evidence` | Ejecuta `npx create-quiver evidence`; usalo como `npm run quiver:evidence -- run -- <comando>`. |
|
|
486
|
-
| `npm run quiver:ai:agent` | Ejecuta `npx create-quiver ai agent`. |
|
|
487
|
-
| `npm run quiver:ai:inspect` | Ejecuta `npx create-quiver ai inspect`. |
|
|
488
|
-
| `npm run quiver:ai:export` | Ejecuta `npx create-quiver ai export`. |
|
|
489
|
-
| `npm run quiver:ai:specs` | Ejecuta `npx create-quiver ai specs list`. |
|
|
490
|
-
| `npm run quiver:ai:slices` | Ejecuta `npx create-quiver ai slices list`. |
|
|
491
|
-
| `npm run quiver:ai:trace` | Ejecuta `npx create-quiver ai trace report`. |
|
|
492
|
-
| `npm run quiver:ai:onboard` | Ejecuta onboarding de IA. |
|
|
493
|
-
| `npm run quiver:ai:prepare-context` | Prepara docs de contexto IA solo en documentación; usalo primero con `-- --dry-run` para revisar diffs y contradicciones. |
|
|
494
|
-
| `npm run quiver:ai:plan` | Ejecuta planificación IA por fases. |
|
|
495
|
-
| `npm run quiver:ai:review-plan` | Revisa el plan técnico antes de aprobarlo y crear la spec. |
|
|
496
|
-
| `npm run quiver:ai:approve` | Guarda criterios o planes aprobados. |
|
|
497
|
-
| `npm run quiver:ai:prompt-slice` | Imprime un prompt mínimo para asignar un slice a un executor. |
|
|
498
|
-
| `npm run quiver:ai:execute-slice` | Ejecuta un slice con rol executor. |
|
|
499
|
-
| `npm run quiver:ai:execute-plan` | Imprime o ejecuta olas de slices; soporta `--mode manual` y `--mode delegated`. |
|
|
500
|
-
| `npm run quiver:ai:doctor` | Ejecuta preflight IA/GitHub. |
|
|
501
|
-
| `npm run quiver:ai:pr` | Ejecuta preflight de PR y crea PR con `--create`. |
|
|
502
|
-
| `npm run quiver:spec:create` | Ejecuta `npx create-quiver spec create`. |
|
|
503
|
-
| `npm run quiver:spec:start` | Ejecuta `npx create-quiver spec start`. |
|
|
504
|
-
| `npm run quiver:spec:status` | Ejecuta `npx create-quiver spec status`. |
|
|
505
|
-
| `npm run quiver:spec:validate` | Ejecuta `npx create-quiver spec validate`. |
|
|
506
|
-
| `npm run quiver:spec:close` | Ejecuta `npx create-quiver spec close`. |
|
|
507
|
-
| `npm run package:quiver` | Empaqueta y valida el tarball npm. |
|
|
508
|
-
| `npm run smoke:create-quiver` | Smoke del instalador `create-quiver`. |
|
|
509
|
-
| `npm run smoke:doctor-fixtures` | Smoke de la matriz de fixtures para validación, doctor y errores accionables. |
|
|
510
|
-
| `npm run smoke:guided-workflow` | Smoke del flujo guiado con IA, PR, cleanup y package safety. |
|
|
511
|
-
| `npm run smoke:tiered-pack` | Smoke de context packs y lifecycle. |
|
|
512
|
-
| `npm run release:quiver` | Release dry-run o publish, según flags. |
|
|
513
|
-
|
|
514
|
-
`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.
|
|
515
|
-
|
|
516
|
-
## 🔁 Flujo recomendado
|
|
517
|
-
|
|
518
|
-
1. Inicializá Quiver o migrá si el proyecto ya lo tenía.
|
|
519
|
-
2. Corré `analyze` para generar el mapa técnico.
|
|
520
|
-
3. Corré `doctor` para validar el contrato.
|
|
521
|
-
4. Prepará contexto IA con `ai prepare-context --dry-run` y revisá los supuestos antes de escribir.
|
|
522
|
-
5. Incorporá al planner con `ai onboard --dry-run`.
|
|
523
|
-
6. Convertí requerimientos en criterios, plan técnico y spec con `ai plan`; revisá el plan con `ai review-plan` antes de aprobarlo.
|
|
524
|
-
7. Creá la spec real con `spec create` y prepará su worktree con `spec start`.
|
|
525
|
-
8. Revisá dependencias con `graph`, `next` o `ai execute-plan --dry-run --mode manual`.
|
|
526
|
-
9. Para ejecución manual, generá el prompt con `ai prompt-slice --slice <slice.json> --dry-run`.
|
|
527
|
-
10. Ejecutá slices con `ai execute-slice --commit` o `ai execute-plan --execute --commit --mode delegated`.
|
|
528
|
-
11. Abrí el PR con `ai pr --create` después de revisar el dry-run.
|
|
529
|
-
12. Después del merge, cerrá el worktree con `spec close`.
|
|
530
|
-
|
|
531
|
-
## 🤝 Contribuir
|
|
532
|
-
|
|
533
|
-
1. Abrí un issue describiendo el problema o propuesta.
|
|
534
|
-
2. Acordá el alcance antes de implementar si hace falta.
|
|
535
|
-
3. Trabajá en un slice pequeño y revisable.
|
|
536
|
-
4. Incluí evidencia de validación en el PR.
|
|
537
|
-
5. Mantené una relación clara: un slice, un commit; una spec, un PR.
|
|
538
|
-
|
|
539
|
-
## 🚢 Release
|
|
540
|
-
|
|
541
|
-
Release dry-run:
|
|
542
|
-
|
|
543
|
-
```bash
|
|
544
|
-
npm run release:quiver
|
|
545
|
-
```
|
|
546
|
-
|
|
547
|
-
Publicar la versión actual:
|
|
548
|
-
|
|
549
|
-
```bash
|
|
550
|
-
bash scripts/release-quiver.sh --publish-current
|
|
551
|
-
```
|
|
552
|
-
|
|
553
|
-
Publicar con bump:
|
|
554
|
-
|
|
555
|
-
```bash
|
|
556
|
-
bash scripts/release-quiver.sh patch --publish
|
|
557
|
-
```
|
|
558
|
-
|
|
559
|
-
Antes de publicar, verificá autenticación y estado del paquete:
|
|
560
|
-
|
|
561
|
-
```bash
|
|
562
|
-
npm whoami
|
|
563
|
-
npm view create-quiver version
|
|
564
|
-
```
|
|
565
|
-
|
|
566
|
-
Checklist de release:
|
|
567
|
-
|
|
568
|
-
1. `node --test tests/**/*.test.js`
|
|
569
|
-
2. `npm run smoke:create-quiver`
|
|
570
|
-
3. `npm run smoke:doctor-fixtures`
|
|
571
|
-
4. `npm run smoke:guided-workflow`
|
|
572
|
-
5. `npm run smoke:tiered-pack`
|
|
573
|
-
6. `npm run package:quiver`
|
|
574
|
-
7. `npm pack --dry-run`
|
|
575
|
-
8. Confirmar que el PR esta aprobado antes de publicar.
|
|
248
|
+
## Documentación
|
|
576
249
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
- [
|
|
250
|
+
- [Flujo completo](./docs/workflows/full-ai-spec-to-pr.md)
|
|
251
|
+
- [Guía para proyectos existentes](./docs/workflows/existing-project.md)
|
|
252
|
+
- [Referencia de comandos](./docs/reference/commands.md)
|
|
253
|
+
- [Guía de UX del CLI](./docs/CLI_UX_GUIDE.md)
|
|
254
|
+
- [Troubleshooting template](./docs/TROUBLESHOOTING.md.template)
|
|
255
|
+
- [Guía de IA de este repositorio](./README_FOR_AI.md)
|
|
580
256
|
- [Changelog](./CHANGELOG.md)
|
|
581
257
|
- [Roadmap](./ROADMAP.md)
|
|
582
|
-
- [Backlog](./BACKLOG.md)
|
|
583
|
-
- [Guía de templates](./TEMPLATE.md)
|
|
584
|
-
- [Contribución](./CONTRIBUTING.md)
|
|
585
|
-
- [Seguridad](./SECURITY.md)
|
|
586
|
-
|
|
587
|
-
## Información confirmada y pendiente
|
|
588
|
-
|
|
589
|
-
- `package.json` está en `0.14.0` y `CHANGELOG.md` reconoce `0.14.0`.
|
|
590
|
-
- `package.json` no declara `engines`; la versión mínima real de Node queda pendiente. La CI usa Node 22.
|
|
591
|
-
- Si aparece alguna referencia vieja a `0.9.0`, hay que actualizarla al contrato actual antes de seguir.
|
|
592
|
-
- 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`.
|
|
593
258
|
|
|
594
259
|
## Licencia
|
|
595
260
|
|