create-quiver 0.14.0 → 0.15.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/CHANGELOG.md +27 -0
- package/README.md +187 -518
- package/README_FOR_AI.md +39 -27
- package/ROADMAP.md +11 -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 +185 -0
- package/docs/COMMANDS.md.template +22 -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 +98 -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/specs/quiver-v30-interactive-cli-ux-agent-selection/EVIDENCE_REPORT.md +213 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/EXECUTION_PLAN.md +85 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/SPEC.md +213 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/STATUS.md +31 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/pr.md +103 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-00-spec-foundation/slice.json +71 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-01-cli-ux-runtime-progress-engine/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-01-cli-ux-runtime-progress-engine/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-01-cli-ux-runtime-progress-engine/slice.json +69 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-02-agent-profile-selection-selectors/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-02-agent-profile-selection-selectors/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-02-agent-profile-selection-selectors/slice.json +81 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-03-provider-model-selection-contract/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-03-provider-model-selection-contract/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-03-provider-model-selection-contract/slice.json +75 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-04-planner-ia-progress-flows/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-04-planner-ia-progress-flows/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-04-planner-ia-progress-flows/slice.json +85 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-05-executor-pr-progress-flows/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-05-executor-pr-progress-flows/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-05-executor-pr-progress-flows/slice.json +85 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-06-doctor-visual-json-contract/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-06-doctor-visual-json-contract/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-06-doctor-visual-json-contract/slice.json +81 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-07-interactive-init-spec-create/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-07-interactive-init-spec-create/EXECUTION_BRIEF.md +55 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-07-interactive-init-spec-create/slice.json +85 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-08-tests-docs-cross-platform-release/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-08-tests-docs-cross-platform-release/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v30-interactive-cli-ux-agent-selection/slices/slice-08-tests-docs-cross-platform-release/slice.json +95 -0
- package/src/create-quiver/commands/ai.js +809 -71
- package/src/create-quiver/commands/spec.js +167 -5
- package/src/create-quiver/index.js +582 -71
- package/src/create-quiver/lib/agent-profiles.js +111 -10
- 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/ai/execution-plan.js +106 -8
- package/src/create-quiver/lib/ai/executor.js +284 -28
- package/src/create-quiver/lib/ai/providers.js +71 -1
- package/src/create-quiver/lib/cli/editor.js +118 -0
- package/src/create-quiver/lib/cli/selectors.js +107 -0
- package/src/create-quiver/lib/cli/theme.js +103 -0
- package/src/create-quiver/lib/cli/ux-flags.js +169 -0
- package/src/create-quiver/lib/cli/ux.js +225 -0
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
# Flujo completo de IA: de requerimiento a PR
|
|
2
|
+
|
|
3
|
+
Esta guía cubre el flujo completo de Quiver desde un requerimiento hasta un pull request abierto.
|
|
4
|
+
|
|
5
|
+
Ejecutá los comandos desde la raíz del proyecto.
|
|
6
|
+
|
|
7
|
+
## 1. Confirmar estado del proyecto
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
git status -sb
|
|
11
|
+
npx --yes create-quiver@latest flow
|
|
12
|
+
npx --yes create-quiver@latest doctor
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Qué hace:
|
|
16
|
+
|
|
17
|
+
- revisa el estado local de Git;
|
|
18
|
+
- le pide a Quiver el próximo paso seguro;
|
|
19
|
+
- valida el contrato del proyecto.
|
|
20
|
+
|
|
21
|
+
## 2. Crear un archivo de requerimiento
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
mkdir -p requirements
|
|
25
|
+
$EDITOR requirements/mi-requerimiento.md
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Qué hace:
|
|
29
|
+
|
|
30
|
+
- crea una entrada durable para el planner;
|
|
31
|
+
- evita perder el requerimiento en el historial del chat.
|
|
32
|
+
|
|
33
|
+
## 3. Crear una ejecución de IA
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx --yes create-quiver@latest ai run create --input requirements/mi-requerimiento.md
|
|
37
|
+
npx --yes create-quiver@latest ai status
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Qué hace:
|
|
41
|
+
|
|
42
|
+
- crea estado persistente en `.quiver/runs/`;
|
|
43
|
+
- muestra la fase actual y el próximo comando seguro.
|
|
44
|
+
|
|
45
|
+
## 4. Generar criterios de aceptación
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx --yes create-quiver@latest ai plan --phase acceptance --input requirements/mi-requerimiento.md --dry-run
|
|
49
|
+
npx --yes create-quiver@latest ai plan --phase acceptance --input requirements/mi-requerimiento.md
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Si querés revisar y confirmar el borrador antes de guardarlo:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx --yes create-quiver@latest ai plan --phase acceptance --input requirements/mi-requerimiento.md --review --interactive
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Qué hace:
|
|
59
|
+
|
|
60
|
+
- previsualiza la invocación al proveedor;
|
|
61
|
+
- le pide al planner un borrador de criterios de aceptación.
|
|
62
|
+
|
|
63
|
+
Revisar borradores:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
npx --yes create-quiver@latest ai approvals
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Aprobar una versión:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx --yes create-quiver@latest ai approve --phase acceptance --version <n>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Qué hace:
|
|
76
|
+
|
|
77
|
+
- guarda los criterios aprobados como entrada para el plan técnico.
|
|
78
|
+
|
|
79
|
+
## 5. Iterar criterios cuando haga falta
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npx --yes create-quiver@latest ai revise --phase acceptance --input feedback.md --dry-run
|
|
83
|
+
npx --yes create-quiver@latest ai revise --phase acceptance --input feedback.md
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Qué hace:
|
|
87
|
+
|
|
88
|
+
- crea un nuevo borrador sin aprobarlo automáticamente;
|
|
89
|
+
- mantiene explícita la compuerta de aprobación humana.
|
|
90
|
+
|
|
91
|
+
## 6. Generar el plan técnico
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npx --yes create-quiver@latest ai plan --phase technical-plan --dry-run
|
|
95
|
+
npx --yes create-quiver@latest ai plan --phase technical-plan
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Si querés editar el borrador antes de guardarlo:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npx --yes create-quiver@latest ai plan --phase technical-plan --review --interactive
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Qué hace:
|
|
105
|
+
|
|
106
|
+
- genera un plan técnico desde los criterios aprobados;
|
|
107
|
+
- exige información estructurada de slices para poder crear specs después.
|
|
108
|
+
|
|
109
|
+
## 7. Revisar el plan técnico
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npx --yes create-quiver@latest ai review-plan --dry-run
|
|
113
|
+
npx --yes create-quiver@latest ai review-plan
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Qué hace:
|
|
117
|
+
|
|
118
|
+
- revisa el plan como si fuera a implementarse y probarse en producción;
|
|
119
|
+
- guarda metadata de revisión con recomendación `approve`, `approve-with-risk` o `revise`;
|
|
120
|
+
- bloquea la aprobación cuando hay fixes requeridos.
|
|
121
|
+
|
|
122
|
+
Aprobar un plan revisado:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npx --yes create-quiver@latest ai approve --phase technical-plan --version <n>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## 8. Crear el paquete de spec
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
npx --yes create-quiver@latest spec create --dry-run
|
|
132
|
+
npx --yes create-quiver@latest spec create
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Si querés revisar el paquete antes de escribirlo:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
npx --yes create-quiver@latest spec create --review --interactive
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Qué hace:
|
|
142
|
+
|
|
143
|
+
- crea `SPEC.md`;
|
|
144
|
+
- crea el `slice-00` obligatorio;
|
|
145
|
+
- crea slices de implementación;
|
|
146
|
+
- crea `EXECUTION_BRIEF.md` y `CLOSURE_BRIEF.md`;
|
|
147
|
+
- crea el plan de ejecución y `pr.md`.
|
|
148
|
+
|
|
149
|
+
Validarlo:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
npx --yes create-quiver@latest spec validate specs/<spec-slug> --strict
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## 9. Crear o reutilizar el worktree de la spec
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
npx --yes create-quiver@latest spec start specs/<spec-slug> --dry-run
|
|
159
|
+
npx --yes create-quiver@latest spec start specs/<spec-slug>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Qué hace:
|
|
163
|
+
|
|
164
|
+
- prepara la rama y el worktree dedicados a esta spec;
|
|
165
|
+
- mantiene una spec aislada de otros trabajos.
|
|
166
|
+
|
|
167
|
+
## 10. Inspeccionar el orden de slices
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
npx --yes create-quiver@latest plan --spec <spec-slug>
|
|
171
|
+
npx --yes create-quiver@latest graph --spec <spec-slug>
|
|
172
|
+
npx --yes create-quiver@latest next --all-ready --spec <spec-slug>
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Qué hace:
|
|
176
|
+
|
|
177
|
+
- muestra el orden de ejecución;
|
|
178
|
+
- muestra dependencias;
|
|
179
|
+
- lista slices listos para ejecutar.
|
|
180
|
+
|
|
181
|
+
## 11. Ejecutar slices manualmente
|
|
182
|
+
|
|
183
|
+
Generá un prompt para un agente ejecutor de menor costo:
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
npx --yes create-quiver@latest ai prompt-slice --slice specs/<spec-slug>/slices/<slice-id>/slice.json --dry-run
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Qué hace:
|
|
190
|
+
|
|
191
|
+
- imprime el contexto mínimo que necesita el ejecutor;
|
|
192
|
+
- evita enviar la spec completa salvo que sea necesario.
|
|
193
|
+
|
|
194
|
+
## 12. Ejecutar un slice con Quiver
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
npx --yes create-quiver@latest ai execute-slice --slice specs/<spec-slug>/slices/<slice-id>/slice.json --commit --dry-run
|
|
198
|
+
npx --yes create-quiver@latest ai execute-slice --slice specs/<spec-slug>/slices/<slice-id>/slice.json --commit
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Qué hace:
|
|
202
|
+
|
|
203
|
+
- ejecuta el slice con el ejecutor configurado;
|
|
204
|
+
- valida rama y worktree;
|
|
205
|
+
- valida archivos modificados contra el alcance del slice;
|
|
206
|
+
- corre comandos de validación declarados;
|
|
207
|
+
- actualiza cierre, evidencia, estado y `slice.json`;
|
|
208
|
+
- crea un commit para el slice.
|
|
209
|
+
|
|
210
|
+
## 13. Ejecutar slices por olas
|
|
211
|
+
|
|
212
|
+
Modo manual:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
npx --yes create-quiver@latest ai execute-plan --dry-run --commit --mode manual
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Qué hace:
|
|
219
|
+
|
|
220
|
+
- imprime prompts de slices en orden de ejecución;
|
|
221
|
+
- no llama proveedores.
|
|
222
|
+
|
|
223
|
+
Modo delegado:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
npx --yes create-quiver@latest ai execute-plan --dry-run --commit --mode delegated
|
|
227
|
+
npx --yes create-quiver@latest ai execute-plan --execute --commit --mode delegated
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Qué hace:
|
|
231
|
+
|
|
232
|
+
- previsualiza o ejecuta slices delegados;
|
|
233
|
+
- usa worktrees temporales para slices paralelizables;
|
|
234
|
+
- vuelve a ejecución secuencial cuando el alcance no es seguro.
|
|
235
|
+
|
|
236
|
+
## 14. Validar antes del PR
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
npx --yes create-quiver@latest spec validate specs/<spec-slug> --strict
|
|
240
|
+
npx --yes create-quiver@latest next --all-ready --spec <spec-slug>
|
|
241
|
+
git diff --check
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
Qué hace:
|
|
245
|
+
|
|
246
|
+
- confirma que el paquete de spec esté completo;
|
|
247
|
+
- confirma que no queden slices listos sin ejecutar;
|
|
248
|
+
- revisa whitespace.
|
|
249
|
+
|
|
250
|
+
También corré validaciones propias del proyecto:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
npm test
|
|
254
|
+
npm run build
|
|
255
|
+
npm run lint
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
Usá solo los scripts que existan en el proyecto.
|
|
259
|
+
|
|
260
|
+
## 15. Previsualizar creación del PR
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
npx --yes create-quiver@latest ai pr \
|
|
264
|
+
--review \
|
|
265
|
+
--dry-run \
|
|
266
|
+
--input specs/<spec-slug>/pr.md \
|
|
267
|
+
--ssh-host-alias github-personal \
|
|
268
|
+
--identity-file ~/.ssh/github-personal
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Qué hace:
|
|
272
|
+
|
|
273
|
+
- valida `gh`;
|
|
274
|
+
- valida autenticación de GitHub;
|
|
275
|
+
- valida alias SSH y archivo de identidad;
|
|
276
|
+
- verifica que exista el cuerpo del PR;
|
|
277
|
+
- no crea el PR.
|
|
278
|
+
|
|
279
|
+
Adaptá `--identity-file` a la ruta real de tu máquina, por ejemplo `~/ssh/github-personal`, `~/.ssh/github-personal` o una ruta de Windows.
|
|
280
|
+
|
|
281
|
+
## 16. Crear el pull request
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
npx --yes create-quiver@latest ai pr \
|
|
285
|
+
--create \
|
|
286
|
+
--interactive \
|
|
287
|
+
--input specs/<spec-slug>/pr.md \
|
|
288
|
+
--ssh-host-alias github-personal \
|
|
289
|
+
--identity-file ~/.ssh/github-personal
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Qué hace:
|
|
293
|
+
|
|
294
|
+
- abre el PR usando `gh`;
|
|
295
|
+
- usa el cuerpo generado en `pr.md`;
|
|
296
|
+
- bloquea la creación si todavía quedan slices abiertos.
|
|
297
|
+
|
|
298
|
+
## 17. Después del merge
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
npx --yes create-quiver@latest spec close specs/<spec-slug> --dry-run
|
|
302
|
+
npx --yes create-quiver@latest spec close specs/<spec-slug>
|
|
303
|
+
git switch main
|
|
304
|
+
git pull --ff-only origin main
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Qué hace:
|
|
308
|
+
|
|
309
|
+
- previsualiza y luego cierra el worktree de la spec;
|
|
310
|
+
- vuelve al checkout principal;
|
|
311
|
+
- trae localmente el resultado mergeado.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Flujo para proyecto con Quiver anterior
|
|
2
|
+
|
|
3
|
+
Usá este flujo cuando el proyecto ya tiene archivos de Quiver creados por una versión anterior.
|
|
4
|
+
|
|
5
|
+
## 1. Entrar al proyecto
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
cd /ruta/al/proyecto
|
|
9
|
+
git status -sb
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Qué hace:
|
|
13
|
+
|
|
14
|
+
- revisa la rama actual y los cambios pendientes.
|
|
15
|
+
|
|
16
|
+
## 2. Ejecutar doctor
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx --yes create-quiver@latest doctor
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Qué hace:
|
|
23
|
+
|
|
24
|
+
- detecta si el proyecto está inicializado, incompleto, legacy, híbrido o sano.
|
|
25
|
+
|
|
26
|
+
## 3. Previsualizar migración
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npx --yes create-quiver@latest migrate --dry-run
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Qué hace:
|
|
33
|
+
|
|
34
|
+
- muestra qué actualizaría Quiver;
|
|
35
|
+
- evita escribir archivos.
|
|
36
|
+
|
|
37
|
+
## 4. Aplicar migración
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npx --yes create-quiver@latest migrate
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Qué hace:
|
|
44
|
+
|
|
45
|
+
- actualiza documentación y estado interno de Quiver;
|
|
46
|
+
- preserva archivos existentes del proyecto;
|
|
47
|
+
- mantiene la migración lo más aditiva posible.
|
|
48
|
+
|
|
49
|
+
Usá esta variante si no querés instalar dependencias:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx --yes create-quiver@latest migrate --skip-install
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 5. Reconstruir contexto del proyecto
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx --yes create-quiver@latest analyze
|
|
59
|
+
npx --yes create-quiver@latest doctor
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Qué hace:
|
|
63
|
+
|
|
64
|
+
- refresca `docs/PROJECT_MAP.md`;
|
|
65
|
+
- confirma que la estructura migrada esté sana.
|
|
66
|
+
|
|
67
|
+
## 6. Preparar contexto para IA
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npx --yes create-quiver@latest ai prepare-context --dry-run
|
|
71
|
+
npx --yes create-quiver@latest ai prepare-context
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Modo asistido por planner, útil cuando el contexto anterior quedó desactualizado:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npx --yes create-quiver@latest ai prepare-context --with-planner --dry-run
|
|
78
|
+
npx --yes create-quiver@latest ai prepare-context --with-planner --review --interactive
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Qué hace:
|
|
82
|
+
|
|
83
|
+
- actualiza contexto de onboarding de forma segura;
|
|
84
|
+
- reporta supuestos y contradicciones.
|
|
85
|
+
|
|
86
|
+
## 7. Commit de migración
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git status -sb
|
|
90
|
+
git add AGENTS.md docs .quiver .gitignore package.json package-lock.json
|
|
91
|
+
git commit -m "docs: migrate quiver workflow"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Qué hace:
|
|
95
|
+
|
|
96
|
+
- crea una base estable antes de empezar specs nuevas.
|
|
97
|
+
|
|
98
|
+
Ajustá los paths según lo que haya informado la migración.
|
|
99
|
+
|
|
100
|
+
Siguiente paso:
|
|
101
|
+
|
|
102
|
+
- [Ejecutar el flujo completo de spec a PR con IA](./full-ai-spec-to-pr.md)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Flujo para proyecto nuevo
|
|
2
|
+
|
|
3
|
+
Usá este flujo cuando el repositorio todavía no existe o la carpeta está vacía.
|
|
4
|
+
|
|
5
|
+
## 1. Crear la carpeta del proyecto
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
mkdir mi-proyecto
|
|
9
|
+
cd mi-proyecto
|
|
10
|
+
git init
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Qué hace:
|
|
14
|
+
|
|
15
|
+
- crea una carpeta para el proyecto;
|
|
16
|
+
- inicializa Git para que Quiver pueda razonar sobre cambios y worktrees.
|
|
17
|
+
|
|
18
|
+
## 2. Inicializar Quiver
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npx --yes create-quiver@latest init --name "Mi Proyecto"
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Qué hace:
|
|
25
|
+
|
|
26
|
+
- crea el contrato visible de Quiver;
|
|
27
|
+
- crea el estado interno en `.quiver/`;
|
|
28
|
+
- agrega scripts `quiver:*` cuando existe o se crea `package.json`.
|
|
29
|
+
|
|
30
|
+
## 3. Revisar el próximo paso
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx --yes create-quiver@latest flow
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Qué hace:
|
|
37
|
+
|
|
38
|
+
- muestra el estado actual del workflow;
|
|
39
|
+
- recomienda el próximo comando seguro.
|
|
40
|
+
|
|
41
|
+
## 4. Analizar y validar
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx --yes create-quiver@latest analyze
|
|
45
|
+
npx --yes create-quiver@latest doctor
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Qué hace:
|
|
49
|
+
|
|
50
|
+
- crea o actualiza `docs/PROJECT_MAP.md`;
|
|
51
|
+
- refresca el contexto para IA;
|
|
52
|
+
- valida que el contrato de Quiver esté sano.
|
|
53
|
+
|
|
54
|
+
## 5. Preparar contexto para IA
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npx --yes create-quiver@latest ai prepare-context --dry-run
|
|
58
|
+
npx --yes create-quiver@latest ai prepare-context
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Modo asistido por planner, si querés que una IA proponga el contexto:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npx --yes create-quiver@latest ai prepare-context --with-planner --dry-run
|
|
65
|
+
npx --yes create-quiver@latest ai prepare-context --with-planner --review --interactive
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Qué hace:
|
|
69
|
+
|
|
70
|
+
- previsualiza cambios documentales de onboarding;
|
|
71
|
+
- escribe la documentación de contexto después de revisar;
|
|
72
|
+
- evita cambios en código de producto.
|
|
73
|
+
|
|
74
|
+
Siguiente paso:
|
|
75
|
+
|
|
76
|
+
- [Ejecutar el flujo completo de spec a PR con IA](./full-ai-spec-to-pr.md)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-quiver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Quiver CLI for scaffolding projects from the packaged template",
|
|
6
6
|
"license": "MIT",
|
|
@@ -49,5 +49,9 @@
|
|
|
49
49
|
"smoke:tiered-pack": "bash scripts/ci/smoke-tiered-pack.sh",
|
|
50
50
|
"smoke:guided-workflow": "bash scripts/ci/smoke-guided-workflow.sh",
|
|
51
51
|
"release:quiver": "bash scripts/release-quiver.sh"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"@clack/prompts": "^1.4.0",
|
|
55
|
+
"zod": "^4.4.3"
|
|
52
56
|
}
|
|
53
57
|
}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# Evidence Report - Quiver v29 Planner Prepare Context CLI UX
|
|
2
|
+
|
|
3
|
+
**Status:** Initial documentation package evidence
|
|
4
|
+
**Date:** 2026-05-26
|
|
5
|
+
|
|
6
|
+
## Scope
|
|
7
|
+
|
|
8
|
+
This evidence report currently covers creation of the approved spec/slice package only. Implementation evidence must be appended by each execution slice.
|
|
9
|
+
|
|
10
|
+
## Commands Run During Spec Creation
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
find specs/quiver-v29-planner-prepare-context-cli-ux -name 'slice.json' -print -exec node -e "JSON.parse(require('fs').readFileSync(process.argv[1], 'utf8')); console.log('ok ' + process.argv[1])" {} \;
|
|
14
|
+
git diff --check
|
|
15
|
+
for f in specs/quiver-v29-planner-prepare-context-cli-ux/slices/*/EXECUTION_BRIEF.md specs/quiver-v29-planner-prepare-context-cli-ux/slices/*/CLOSURE_BRIEF.md; do node bin/create-quiver.js check-handoff "$f" >/dev/null || exit 1; done; echo "handoff briefs ok"
|
|
16
|
+
node bin/create-quiver.js spec validate specs/quiver-v29-planner-prepare-context-cli-ux
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Results
|
|
20
|
+
|
|
21
|
+
- `slice-00-cli-ux-spec-foundation` completed as the documentation foundation slice.
|
|
22
|
+
- Every `slice.json` parsed successfully.
|
|
23
|
+
- `git diff --check` passed.
|
|
24
|
+
- Every `EXECUTION_BRIEF.md` and `CLOSURE_BRIEF.md` passed `check-handoff` after normalizing the required `Acceptance Criteria` heading.
|
|
25
|
+
- Initial `spec validate` reported this file as missing; this report was added to satisfy the spec validation contract.
|
|
26
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v29-planner-prepare-context-cli-ux` passed after adding this report.
|
|
27
|
+
|
|
28
|
+
## Pending Evidence
|
|
29
|
+
|
|
30
|
+
Implementation slices must append:
|
|
31
|
+
|
|
32
|
+
- focused unit tests;
|
|
33
|
+
- command integration tests;
|
|
34
|
+
- CI/no-TTY/JSON validation;
|
|
35
|
+
- package smoke;
|
|
36
|
+
- tarball dry-run;
|
|
37
|
+
- final docs sync validation.
|
|
38
|
+
|
|
39
|
+
## slice-01-cli-ux-primitives-theme Evidence
|
|
40
|
+
|
|
41
|
+
**Date:** 2026-05-26
|
|
42
|
+
**Status:** Passed
|
|
43
|
+
|
|
44
|
+
### Commands
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
node --test tests/lib/cli-theme.test.js tests/lib/cli-ux.test.js tests/lib/cli-editor.test.js
|
|
48
|
+
npm run package:quiver
|
|
49
|
+
git diff --check
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Results
|
|
53
|
+
|
|
54
|
+
- `node --test tests/lib/cli-theme.test.js tests/lib/cli-ux.test.js tests/lib/cli-editor.test.js` passed with 18 tests.
|
|
55
|
+
- `npm run package:quiver` passed and produced package smoke output for `create-quiver-0.14.0.tgz`.
|
|
56
|
+
- `git diff --check` passed.
|
|
57
|
+
- Dependencies were added through npm so `package-lock.json` records the resolved package metadata.
|
|
58
|
+
|
|
59
|
+
## slice-02-planner-context-proposal-contract Evidence
|
|
60
|
+
|
|
61
|
+
**Date:** 2026-05-26
|
|
62
|
+
**Status:** Passed
|
|
63
|
+
|
|
64
|
+
### Commands
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
node --test tests/lib/ai-context-proposal.test.js
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Results
|
|
71
|
+
|
|
72
|
+
- `node --test tests/lib/ai-context-proposal.test.js` passed with 8 tests.
|
|
73
|
+
- Fixtures cover valid JSON, fenced JSON, malformed output, product-code path, absolute path, and path traversal.
|
|
74
|
+
- The slice did not invoke providers and did not modify `runPrepareContext` write behavior.
|
|
75
|
+
|
|
76
|
+
## slice-04-ux-flag-matrix-compatibility Evidence
|
|
77
|
+
|
|
78
|
+
**Date:** 2026-05-26
|
|
79
|
+
**Status:** Passed
|
|
80
|
+
|
|
81
|
+
### Commands
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
node --test tests/commands/ux-flags.test.js tests/commands/cli-contract.test.js tests/lib/cli-ux.test.js
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Results
|
|
88
|
+
|
|
89
|
+
- `node --test tests/commands/ux-flags.test.js tests/commands/cli-contract.test.js tests/lib/cli-ux.test.js` passed with 22 tests.
|
|
90
|
+
- Tests cover matrix support, unsupported flags, incompatible `--json` combinations, read-only commands, `ai pr --with-planner`, and parseable JSON output for existing commands.
|
|
91
|
+
|
|
92
|
+
## slice-03-prepare-context-planner-review-flow Evidence
|
|
93
|
+
|
|
94
|
+
**Date:** 2026-05-26
|
|
95
|
+
**Status:** Passed
|
|
96
|
+
|
|
97
|
+
### Commands
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
node --test tests/commands/ai-onboard.test.js tests/commands/ai-prepare-context-planner.test.js tests/lib/ai-context-proposal.test.js
|
|
101
|
+
node --test tests/commands/ux-flags.test.js tests/commands/cli-contract.test.js tests/lib/cli-ux.test.js
|
|
102
|
+
git diff --check
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Results
|
|
106
|
+
|
|
107
|
+
- `node --test tests/commands/ai-onboard.test.js tests/commands/ai-prepare-context-planner.test.js tests/lib/ai-context-proposal.test.js` passed with 25 tests.
|
|
108
|
+
- `node --test tests/commands/ux-flags.test.js tests/commands/cli-contract.test.js tests/lib/cli-ux.test.js` passed with 22 tests.
|
|
109
|
+
- Tests cover deterministic compatibility, planner dry-run, prompt printing, provider success, provider failure, invalid planner output, review cancellation, review edit/revalidation, and interactive decline.
|
|
110
|
+
- `git diff --check` passed.
|
|
111
|
+
|
|
112
|
+
## slice-05-progressive-command-adoption Evidence
|
|
113
|
+
|
|
114
|
+
**Date:** 2026-05-26
|
|
115
|
+
**Status:** Passed
|
|
116
|
+
|
|
117
|
+
### Commands
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
node --test tests/commands/ai-plan.test.js tests/commands/spec-create.test.js tests/commands/ai-pr.test.js tests/commands/ux-flags.test.js
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Results
|
|
124
|
+
|
|
125
|
+
- `node --test tests/commands/ai-plan.test.js tests/commands/spec-create.test.js tests/commands/ai-pr.test.js tests/commands/ux-flags.test.js` passed with 46 tests.
|
|
126
|
+
- Tests cover `ai plan` UX flags, draft review, interactive decline, `spec create --review`, `spec create --interactive`, `ai pr --review`, `ai pr --interactive`, and the central unsupported flag matrix.
|
|
127
|
+
|
|
128
|
+
## slice-06-docs-tests-smoke-readiness Evidence
|
|
129
|
+
|
|
130
|
+
**Date:** 2026-05-26
|
|
131
|
+
**Status:** Passed
|
|
132
|
+
|
|
133
|
+
### Commands
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
node --test tests/commands/ai-prepare-context-planner.test.js tests/commands/ai-plan.test.js tests/commands/spec-create.test.js tests/commands/ai-pr.test.js tests/commands/ux-flags.test.js tests/commands/cli-contract.test.js tests/lib/cli-theme.test.js tests/lib/cli-ux.test.js tests/lib/cli-editor.test.js tests/lib/ai-context-proposal.test.js
|
|
137
|
+
node bin/create-quiver.js --help >/tmp/quiver-help.txt && rg -- '--with-planner|--interactive|--review|--no-color' /tmp/quiver-help.txt
|
|
138
|
+
node --test tests/**/*.test.js
|
|
139
|
+
npm run smoke:create-quiver
|
|
140
|
+
npm run smoke:doctor-fixtures
|
|
141
|
+
npm run smoke:guided-workflow
|
|
142
|
+
npm run package:quiver
|
|
143
|
+
npm pack --dry-run
|
|
144
|
+
git diff --check
|
|
145
|
+
node bin/create-quiver.js spec validate specs/quiver-v29-planner-prepare-context-cli-ux
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Results
|
|
149
|
+
|
|
150
|
+
- Focused command/UX validation passed with 87 tests and confirmed the public help includes `--with-planner`, `--interactive`, `--review`, and `--no-color`.
|
|
151
|
+
- Full test suite passed with 426 tests.
|
|
152
|
+
- `npm run smoke:create-quiver` passed.
|
|
153
|
+
- `npm run smoke:doctor-fixtures` passed with 13 fixture states.
|
|
154
|
+
- `npm run smoke:guided-workflow` passed.
|
|
155
|
+
- `npm run package:quiver` passed and validated package safety.
|
|
156
|
+
- `npm pack --dry-run` passed and produced a clean dry-run tarball report for `create-quiver@0.14.0`.
|
|
157
|
+
- `git diff --check` passed.
|
|
158
|
+
- `node bin/create-quiver.js spec validate specs/quiver-v29-planner-prepare-context-cli-ux` passed after closure metadata updates.
|
|
159
|
+
|
|
160
|
+
### Notes
|
|
161
|
+
|
|
162
|
+
- Npm printed a non-blocking update notice for npm `11.12.1 -> 11.15.0`.
|
|
163
|
+
- Publishing and PR creation remain outside this slice.
|