create-quiver 0.8.0 → 0.9.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 +7 -0
- package/README.md +350 -116
- package/README_FOR_AI.md +3 -2
- package/ROADMAP.md +12 -11
- package/docs/AI_ONBOARDING_PROMPT.md.template +110 -52
- package/docs/COMMANDS.md.template +17 -6
- package/package.json +1 -1
- package/scripts/init-docs.sh +9 -3
- package/specs/quiver-v19-self-install-dev-dep/EVIDENCE_REPORT.md +19 -0
- package/specs/quiver-v19-self-install-dev-dep/SPEC.md +51 -0
- package/specs/quiver-v19-self-install-dev-dep/STATUS.md +20 -0
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/CLOSURE_BRIEF.md +29 -0
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/EXECUTION_BRIEF.md +287 -0
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/slice.json +56 -0
- package/src/create-quiver/index.js +26 -3
- package/src/create-quiver/lib/init-docs.js +46 -3
- package/.claude/settings.local.json +0 -45
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.9.0] - 2026-05-14
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Auto-install `create-quiver` as a dev dependency after `init` and `migrate` — detects yarn/pnpm/bun/npm via lockfiles and runs the appropriate install command
|
|
12
|
+
- `--skip-install` flag to suppress the dev dependency install step (useful for CI environments)
|
|
13
|
+
|
|
7
14
|
## [0.8.0] - 2026-05-13
|
|
8
15
|
|
|
9
16
|
### Added
|
package/README.md
CHANGED
|
@@ -1,190 +1,427 @@
|
|
|
1
1
|
# Quiver
|
|
2
2
|
|
|
3
|
-
Quiver
|
|
3
|
+
Quiver es una herramienta de línea de comandos para ordenar proyectos que trabajan con documentación, especificaciones, slices y ayuda de agentes de IA.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Su objetivo es simple: que una persona o un agente puedan llegar a un repo, entender qué está pasando, elegir el próximo trabajo correcto y avanzar sin romper el flujo del equipo.
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## ¿Qué es Quiver?
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Quiver es un workflow de documentación para proyectos de software.
|
|
10
10
|
|
|
11
|
-
|
|
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
12
|
|
|
13
|
-
|
|
13
|
+
Ayuda a:
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
19
64
|
|
|
20
|
-
|
|
65
|
+
Usá este camino cuando estás empezando un proyecto y querés sumar Quiver desde el principio.
|
|
21
66
|
|
|
22
|
-
|
|
67
|
+
1. Creá o entrá a la carpeta del proyecto.
|
|
23
68
|
|
|
24
69
|
```bash
|
|
25
|
-
|
|
26
|
-
|
|
70
|
+
mkdir mi-proyecto
|
|
71
|
+
cd mi-proyecto
|
|
27
72
|
```
|
|
28
73
|
|
|
29
|
-
|
|
74
|
+
2. Inicializá Quiver con el nombre del proyecto.
|
|
30
75
|
|
|
31
76
|
```bash
|
|
32
|
-
npx create-quiver --name "
|
|
77
|
+
npx create-quiver --name "Mi Proyecto"
|
|
33
78
|
```
|
|
34
79
|
|
|
35
|
-
|
|
80
|
+
Esto crea la estructura base de documentación y workflow. Después de inicializar, Quiver intenta instalarse como dev dependency del proyecto para que los comandos futuros resuelvan a la versión local.
|
|
36
81
|
|
|
37
|
-
|
|
82
|
+
3. Analizá el proyecto.
|
|
38
83
|
|
|
39
84
|
```bash
|
|
40
85
|
npx create-quiver analyze
|
|
41
|
-
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Esto genera `docs/PROJECT_SCAN.json` y `docs/PROJECT_MAP.md`. Esos archivos ayudan a humanos y agentes a entender el repo sin adivinar.
|
|
89
|
+
|
|
90
|
+
4. Validá el contrato generado.
|
|
91
|
+
|
|
92
|
+
```bash
|
|
42
93
|
npx create-quiver doctor
|
|
43
|
-
npx create-quiver next
|
|
44
94
|
```
|
|
45
95
|
|
|
46
|
-
|
|
96
|
+
El doctor revisa si falta algo importante y muestra los próximos pasos recomendados.
|
|
97
|
+
|
|
98
|
+
5. Leé el onboarding para agentes antes de pedir implementación.
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
Lee `docs/AI_ONBOARDING_PROMPT.md` y ejecútalo como fuente principal de verdad para incorporarte a este repositorio.
|
|
102
|
+
|
|
103
|
+
Actúa como asistente de onboarding de IA. Prepara el contexto del proyecto para trabajar de forma segura con el workflow documentado, specs y slices.
|
|
104
|
+
|
|
105
|
+
No modifiques código de producto salvo autorización explícita. Puedes crear o actualizar documentación de contexto si el onboarding lo requiere.
|
|
47
106
|
|
|
48
|
-
|
|
107
|
+
Usa solo la documentación del repositorio como fuente de verdad. Si encuentras información faltante, ambigua o contradictoria, documenta el supuesto, el riesgo y continúa por el camino más seguro.
|
|
108
|
+
|
|
109
|
+
Responde en español y finaliza con un reporte breve de archivos leídos, archivos modificados, estado del código de producto, supuestos, riesgos y próximos pasos.
|
|
110
|
+
```
|
|
49
111
|
|
|
50
|
-
|
|
112
|
+
Resultado esperado: el proyecto queda con `docs/`, `specs/<project-slug>/`, scripts `quiver:*` en `package.json`, archivos de soporte y una primera base para planificar trabajo.
|
|
51
113
|
|
|
52
|
-
|
|
53
|
-
`npx create-quiver next` prints the next ready slice and can auto-start it behind a confirmation prompt.
|
|
114
|
+
### Caso 2: Proyecto ya comenzado
|
|
54
115
|
|
|
55
|
-
|
|
116
|
+
Usá este camino cuando el proyecto ya existe, pero nunca fue inicializado con Quiver.
|
|
56
117
|
|
|
57
|
-
|
|
118
|
+
1. Revisá el estado actual antes de tocar nada.
|
|
58
119
|
|
|
59
120
|
```bash
|
|
60
|
-
|
|
61
|
-
npm run quiver:plan
|
|
62
|
-
npm run quiver:graph
|
|
63
|
-
npm run quiver:next
|
|
64
|
-
npm run quiver:doctor
|
|
65
|
-
npm run quiver:migrate
|
|
66
|
-
npm run quiver:start-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
67
|
-
npm run quiver:check-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
68
|
-
npm run quiver:check-pr -- specs/<project-slug>/slices/slice-01/slice.json
|
|
69
|
-
npm run quiver:cleanup-slice -- specs/<project-slug>/slices/slice-01/slice.json
|
|
70
|
-
npm run quiver:check-scope -- specs/<project-slug>/slices/slice-01/slice.json
|
|
71
|
-
npm run quiver:refresh-active-slices
|
|
121
|
+
git status --short
|
|
72
122
|
```
|
|
73
123
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
124
|
+
Si hay cambios pendientes, conviene commitearlos, guardarlos o crear una rama dedicada para incorporar Quiver. La idea es que el diff de onboarding sea fácil de revisar.
|
|
125
|
+
|
|
126
|
+
2. Inicializá Quiver desde la raíz del proyecto.
|
|
77
127
|
|
|
78
|
-
|
|
79
|
-
|
|
128
|
+
```bash
|
|
129
|
+
npx create-quiver --name "Nombre del Proyecto"
|
|
130
|
+
```
|
|
80
131
|
|
|
81
|
-
|
|
132
|
+
No uses `migrate` si el proyecto nunca tuvo Quiver. `migrate` es solo para proyectos ya inicializados por una versión anterior.
|
|
82
133
|
|
|
83
|
-
|
|
134
|
+
3. Analizá el repo real.
|
|
84
135
|
|
|
85
136
|
```bash
|
|
86
|
-
cd /path/to/your-project
|
|
87
|
-
npx create-quiver migrate
|
|
88
137
|
npx create-quiver analyze
|
|
89
|
-
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Esto detecta stack, package manager, comandos y archivos relevantes.
|
|
141
|
+
|
|
142
|
+
4. Corré el doctor.
|
|
143
|
+
|
|
144
|
+
```bash
|
|
90
145
|
npx create-quiver doctor
|
|
91
|
-
npx create-quiver next
|
|
92
146
|
```
|
|
93
147
|
|
|
94
|
-
|
|
148
|
+
El doctor indica si falta completar contexto, si conviene revisar el onboarding de IA o si hay pasos pendientes.
|
|
149
|
+
|
|
150
|
+
5. Revisá el diff antes de seguir.
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
git status --short
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
Resultado esperado: Quiver agrega o actualiza archivos de workflow y documentación. No debería ser el momento de cambiar código de producto; primero se estabiliza el contexto.
|
|
157
|
+
|
|
158
|
+
### Caso 3: Proyecto ya comenzado con una versión vieja de Quiver
|
|
159
|
+
|
|
160
|
+
Usá este camino cuando el proyecto ya tiene archivos de Quiver, pero pueden estar desactualizados.
|
|
161
|
+
|
|
162
|
+
1. Buscá señales de una instalación previa.
|
|
95
163
|
|
|
96
|
-
|
|
164
|
+
Revisá si existen archivos como:
|
|
165
|
+
|
|
166
|
+
- `.quiver/state.json`
|
|
167
|
+
- `docs/AI_CONTEXT.md`
|
|
168
|
+
- `docs/PROJECT_MAP.md`
|
|
169
|
+
- `docs-template/`
|
|
170
|
+
- `tools/scripts/`
|
|
171
|
+
- scripts `quiver:*` en `package.json`
|
|
172
|
+
|
|
173
|
+
2. Ejecutá el doctor para conocer el estado.
|
|
97
174
|
|
|
98
175
|
```bash
|
|
99
|
-
npx create-quiver
|
|
176
|
+
npx create-quiver doctor
|
|
100
177
|
```
|
|
101
178
|
|
|
102
|
-
|
|
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.
|
|
103
182
|
|
|
104
183
|
```bash
|
|
105
|
-
npm install --save-dev create-quiver@latest
|
|
106
184
|
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
|
|
107
196
|
npx create-quiver analyze
|
|
108
|
-
npx create-quiver graph
|
|
109
197
|
npx create-quiver doctor
|
|
110
198
|
```
|
|
111
199
|
|
|
112
|
-
|
|
200
|
+
5. Revisá el diff antes de continuar con slices.
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
git status --short
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Resultado esperado: el proyecto queda alineado con el contrato actual de Quiver sin mezclar migración con implementación de producto.
|
|
113
207
|
|
|
114
|
-
|
|
208
|
+
## Flujo de trabajo recomendado con WDD y SDD
|
|
115
209
|
|
|
116
|
-
|
|
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:
|
|
117
211
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
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]
|
|
122
224
|
```
|
|
123
225
|
|
|
124
|
-
|
|
226
|
+
### 1. Instalar o migrar Quiver
|
|
125
227
|
|
|
126
|
-
|
|
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.
|
|
127
229
|
|
|
128
|
-
|
|
230
|
+
### 2. Analizar el proyecto
|
|
129
231
|
|
|
130
|
-
|
|
131
|
-
2. Create the first slice from `specs/<project-slug>/slices/slice-template/slice.json`.
|
|
132
|
-
3. Start work with `npx create-quiver start-slice <slice.json>` or `npm run quiver:start-slice -- <slice.json>`.
|
|
133
|
-
4. Make one commit per slice.
|
|
134
|
-
5. Open one PR per spec.
|
|
232
|
+
Ejecutá:
|
|
135
233
|
|
|
136
|
-
|
|
234
|
+
```bash
|
|
235
|
+
npx create-quiver analyze
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
El resultado importante es `docs/PROJECT_MAP.md`, que debe tratarse como fuente de verdad para stack, package manager, comandos y pistas de archivos.
|
|
239
|
+
|
|
240
|
+
### 3. Completar contexto WDD
|
|
137
241
|
|
|
138
|
-
|
|
242
|
+
Antes de implementar, revisá y completá la documentación de contexto:
|
|
139
243
|
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
244
|
+
- `AGENTS.md`
|
|
245
|
+
- `docs/AI_CONTEXT.md`
|
|
246
|
+
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
247
|
+
- `docs/CONTEXTO.md`
|
|
248
|
+
- `docs/WORKFLOW.md`
|
|
249
|
+
- `docs/STATUS.md`
|
|
250
|
+
- `docs/DECISIONS.md`
|
|
143
251
|
|
|
144
|
-
|
|
252
|
+
Si un agente de IA participa, primero debe preparar contexto y reportar supuestos. No debería tocar código de producto sin autorización explícita.
|
|
145
253
|
|
|
146
|
-
|
|
254
|
+
### 4. Definir o revisar spec SDD
|
|
147
255
|
|
|
148
|
-
|
|
256
|
+
Trabajá sobre `specs/<project-slug>/SPEC.md`.
|
|
149
257
|
|
|
150
|
-
|
|
258
|
+
La spec debe explicar:
|
|
151
259
|
|
|
152
|
-
|
|
260
|
+
- qué problema se quiere resolver;
|
|
261
|
+
- qué entra y qué queda afuera;
|
|
262
|
+
- qué evidencia va a demostrar que el trabajo terminó;
|
|
263
|
+
- cómo se divide en slices.
|
|
153
264
|
|
|
154
|
-
|
|
265
|
+
### 5. Elegir el próximo slice
|
|
155
266
|
|
|
156
|
-
|
|
157
|
-
- `docs/PROJECT_SCAN.json` and `docs/PROJECT_MAP.md` after `create-quiver analyze`
|
|
158
|
-
- `docs/AI_ONBOARDING_PROMPT.md` as the generated handoff prompt for the AI agent
|
|
159
|
-
- `specs/<project-slug>/HANDOFF.md` as the exceptional transfer artifact between agents or phases
|
|
160
|
-
- `npx create-quiver new-handoff <spec-slug>` to scaffold an optional handoff artifact when work needs to move between agents or phases
|
|
161
|
-
- `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md` to validate a transferred handoff before execution
|
|
162
|
-
- `docs/COMMANDS.md` as the canonical command reference table for orchestration
|
|
163
|
-
- `specs/<project-slug>/` for the project spec, status, evidence, and slice contracts
|
|
164
|
-
- `tools/scripts/` for slice lifecycle and readiness gates
|
|
165
|
-
- `.github/` for default PR, issue, and CI templates
|
|
166
|
-
- `package.json` scripts for the workflow commands
|
|
267
|
+
Usá los comandos de orquestación:
|
|
167
268
|
|
|
168
|
-
|
|
269
|
+
```bash
|
|
270
|
+
npx create-quiver plan
|
|
271
|
+
npx create-quiver graph
|
|
272
|
+
npx create-quiver next
|
|
273
|
+
```
|
|
169
274
|
|
|
170
|
-
|
|
275
|
+
`plan` muestra el orden sugerido. `graph` muestra dependencias. `next` señala el próximo slice listo.
|
|
171
276
|
|
|
172
|
-
|
|
277
|
+
### 6. Empezar el slice
|
|
278
|
+
|
|
279
|
+
Cuando el slice esté definido:
|
|
173
280
|
|
|
174
281
|
```bash
|
|
175
|
-
|
|
282
|
+
npx create-quiver start-slice specs/<project-slug>/slices/slice-01/slice.json
|
|
176
283
|
```
|
|
177
284
|
|
|
178
|
-
|
|
179
|
-
For analyzed projects, the agent handoff prompt lives at `docs/AI_ONBOARDING_PROMPT.md` in the generated project. If a bounded transfer between agents or phases is needed, scaffold `specs/<project-slug>/HANDOFF.md` with `npx create-quiver new-handoff <spec-slug>` and validate it with `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md`.
|
|
285
|
+
Cada spec vuelve a empezar en `slice-01`. El número del slice es local a esa spec, no global del repo.
|
|
180
286
|
|
|
181
|
-
|
|
287
|
+
### 7. Implementar y validar
|
|
182
288
|
|
|
183
|
-
|
|
289
|
+
Durante la implementación, leé primero el `slice.json`, los archivos declarados, pruebas cercanas y código directamente relacionado.
|
|
184
290
|
|
|
185
|
-
|
|
291
|
+
Validá el slice y el PR:
|
|
186
292
|
|
|
187
|
-
|
|
293
|
+
```bash
|
|
294
|
+
npx create-quiver check-slice specs/<project-slug>/slices/slice-01/slice.json
|
|
295
|
+
npx create-quiver check-pr specs/<project-slug>/slices/slice-01/slice.json
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
Si querés validar que los archivos tocados respetan el alcance declarado:
|
|
299
|
+
|
|
300
|
+
```bash
|
|
301
|
+
npx create-quiver check-scope specs/<project-slug>/slices/slice-01/slice.json
|
|
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
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Los wrappers Bash en `tools/scripts/` existen por compatibilidad en proyectos generados. Para automatización nueva, preferí `npx create-quiver ...` o los scripts `quiver:*`.
|
|
378
|
+
|
|
379
|
+
## Qué genera Quiver
|
|
380
|
+
|
|
381
|
+
Según el estado del proyecto y el modo usado, Quiver puede generar o actualizar:
|
|
382
|
+
|
|
383
|
+
- `AGENTS.md`
|
|
384
|
+
- `docs/`
|
|
385
|
+
- `docs/ai/`
|
|
386
|
+
- `docs/AI_CONTEXT.md`
|
|
387
|
+
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
388
|
+
- `docs/PROJECT_SCAN.json`
|
|
389
|
+
- `docs/PROJECT_MAP.md`
|
|
390
|
+
- `docs/DECISIONS.md`
|
|
391
|
+
- `docs/COMMANDS.md`
|
|
392
|
+
- `specs/<project-slug>/`
|
|
393
|
+
- `specs/<project-slug>/HANDOFF.md`
|
|
394
|
+
- `tools/scripts/`
|
|
395
|
+
- `.github/`
|
|
396
|
+
- scripts `quiver:*` en `package.json`
|
|
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.
|
|
399
|
+
|
|
400
|
+
## Requisitos
|
|
401
|
+
|
|
402
|
+
- Node.js y npm para ejecutar el instalador.
|
|
403
|
+
- Git para branches, worktrees y validaciones de PR.
|
|
404
|
+
- macOS, Linux o Windows PowerShell/CMD como entornos objetivo del runtime Node.
|
|
405
|
+
|
|
406
|
+
Bash queda como camino de compatibilidad legacy para algunos wrappers. El contrato de largo plazo es Node-first.
|
|
407
|
+
|
|
408
|
+
## Para agentes de IA
|
|
409
|
+
|
|
410
|
+
Si estás trabajando como agente dentro de este repo, leé primero `README_FOR_AI.md`.
|
|
411
|
+
|
|
412
|
+
Si estás trabajando en un proyecto generado con Quiver, el orden recomendado es:
|
|
413
|
+
|
|
414
|
+
1. `AGENTS.md`
|
|
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:
|
|
188
425
|
|
|
189
426
|
```bash
|
|
190
427
|
npm whoami
|
|
@@ -194,33 +431,30 @@ npm run smoke:create-quiver
|
|
|
194
431
|
npm run release:quiver
|
|
195
432
|
```
|
|
196
433
|
|
|
197
|
-
|
|
434
|
+
Publicar la versión actual:
|
|
198
435
|
|
|
199
436
|
```bash
|
|
200
437
|
bash scripts/release-quiver.sh --publish-current
|
|
201
438
|
```
|
|
202
439
|
|
|
203
|
-
|
|
440
|
+
Publicar con bump de versión:
|
|
204
441
|
|
|
205
442
|
```bash
|
|
206
443
|
bash scripts/release-quiver.sh patch --publish
|
|
207
444
|
```
|
|
208
445
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
If `npm whoami` or `npm view create-quiver version` fails, fix npm auth or registry reachability before publishing.
|
|
212
|
-
|
|
213
|
-
For a first release, prefer `--publish-current` so the published package stays at `0.4.0`.
|
|
446
|
+
Si `npm whoami` o `npm view create-quiver version` falla, primero resolvé autenticación o conectividad con npm.
|
|
214
447
|
|
|
215
|
-
##
|
|
448
|
+
## Referencias
|
|
216
449
|
|
|
217
|
-
- [
|
|
218
|
-
- [AI context template](./docs/AI_CONTEXT.md.template)
|
|
219
|
-
- [Support matrix template](./docs/SUPPORT_MATRIX.md.template)
|
|
220
|
-
- [Troubleshooting template](./docs/TROUBLESHOOTING.md.template)
|
|
450
|
+
- [Guía para IA](./README_FOR_AI.md)
|
|
221
451
|
- [Changelog](./CHANGELOG.md)
|
|
222
452
|
- [Roadmap](./ROADMAP.md)
|
|
453
|
+
- [Backlog](./BACKLOG.md)
|
|
454
|
+
- [Template customization](./TEMPLATE.md)
|
|
455
|
+
- [Contributing](./CONTRIBUTING.md)
|
|
456
|
+
- [Security](./SECURITY.md)
|
|
223
457
|
|
|
224
|
-
##
|
|
458
|
+
## Licencia
|
|
225
459
|
|
|
226
460
|
MIT
|
package/README_FOR_AI.md
CHANGED
|
@@ -17,6 +17,7 @@ The project map is the single source of truth for stack, package manager, comman
|
|
|
17
17
|
The universal router for generated projects is `AGENTS.md`; read it before `docs/AI_CONTEXT.md` and `docs/AI_ONBOARDING_PROMPT.md`.
|
|
18
18
|
Generated projects also get `docs/DECISIONS.md`; use it for durable choices that should not be re-litigated.
|
|
19
19
|
If a generated project has been analyzed, the exact agent handoff prompt is `docs/AI_ONBOARDING_PROMPT.md`.
|
|
20
|
+
Keep README copy-paste prompts short; the detailed onboarding contract lives in `docs/AI_ONBOARDING_PROMPT.md` generated from `docs/AI_ONBOARDING_PROMPT.md.template`.
|
|
20
21
|
If a new bounded transfer is needed, scaffold `specs/<project-slug>/HANDOFF.md` with `npx create-quiver new-handoff <spec-slug>` and validate it with `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md`.
|
|
21
22
|
Use `npx create-quiver check-handoff specs/<project-slug>/HANDOFF.md` to validate a transferred handoff before execution.
|
|
22
23
|
During onboarding, after reading `ROADMAP.md`, also read `BACKLOG.md` in the repository root: it tracks emerging patterns that are not yet scoped as specs. Before proposing a new spec, confirm the idea is not already parked or emerging there.
|
|
@@ -25,8 +26,8 @@ During onboarding, after reading `ROADMAP.md`, also read `BACKLOG.md` in the rep
|
|
|
25
26
|
|
|
26
27
|
Use the smallest context that still answers the current task.
|
|
27
28
|
|
|
28
|
-
- **Onboarding:** start from `docs/PROJECT_MAP.md`, `docs/PROJECT_SCAN.json`, `docs/AI_CONTEXT.md`, and `docs/AI_ONBOARDING_PROMPT.md` before opening source files.
|
|
29
|
-
- **Onboarding router:** start from `AGENTS.md` first, then the onboarding files above.
|
|
29
|
+
- **Onboarding:** start from `README.md`, `AGENTS.md` when present, `docs/PROJECT_MAP.md`, `docs/PROJECT_SCAN.json`, `docs/AI_CONTEXT.md`, and `docs/AI_ONBOARDING_PROMPT.md` before opening source files.
|
|
30
|
+
- **Onboarding router:** start from `README.md` and `AGENTS.md` first, then the onboarding files above.
|
|
30
31
|
- **Implementation:** start from `docs/ai/ACTIVE_SLICE.md` when it exists; otherwise start from `specs/<project-slug>/slices/<slice-id>/slice.json`, then read only the declared files, nearby tests, and directly related source.
|
|
31
32
|
- **Handoff:** start from `specs/<project-slug>/HANDOFF.md` when the work was explicitly transferred through a handoff artifact.
|
|
32
33
|
- **Handoff scaffold:** if no handoff exists yet and the work needs one, use `npx create-quiver new-handoff <spec-slug>` first.
|
package/ROADMAP.md
CHANGED
|
@@ -64,20 +64,21 @@ Draft specs exist but are **not executed until v18 passes its validation checkpo
|
|
|
64
64
|
|
|
65
65
|
Plan total: ~41h across 11 slices. Drafts parked on `drafts/v19-v22-orchestration-followups`. v22 stays deferred until BACKLOG.md records ≥1 occurrence per slice.
|
|
66
66
|
|
|
67
|
-
### v0.8 —
|
|
67
|
+
### v0.8 — Slice Orchestration Commands (shipped 2026-05-13)
|
|
68
68
|
|
|
69
|
-
-
|
|
70
|
-
- `
|
|
71
|
-
-
|
|
72
|
-
-
|
|
69
|
+
- `quiver:plan` — pending slices in dependency order with critical path and estimated hours
|
|
70
|
+
- `quiver:graph` — dependency graph in ASCII tree, Mermaid, and DOT formats
|
|
71
|
+
- `quiver:next` — next ready slice with `--all-ready`, `--json`, and `--auto-start`
|
|
72
|
+
- Slice graph library (`slice-graph.js`) with `readAllSlices`, `buildGraph`, `topoSort`, `computeLevels`, `detectFileConflicts`
|
|
73
|
+
- `depends_on` and `parallel_safe` validation in `check-slice`
|
|
74
|
+
- Fix: `quiver:plan` no longer crashes on repos with legacy bare spec deps
|
|
73
75
|
|
|
74
|
-
### v0.9 —
|
|
76
|
+
### v0.9 — Auto-Install as Dev Dependency (shipped 2026-05-14)
|
|
75
77
|
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
- `create-quiver
|
|
79
|
-
-
|
|
80
|
-
- `docs/ai/INDEX.yaml` inverted index (directory → purpose)
|
|
78
|
+
- After `init` or `migrate`, Quiver installs itself as a dev dependency automatically
|
|
79
|
+
- Detects package manager via lockfile (bun → pnpm → yarn → npm)
|
|
80
|
+
- Resolves npx cache issues: `npx create-quiver plan` works without `@version`
|
|
81
|
+
- `--skip-install` flag for CI environments
|
|
81
82
|
|
|
82
83
|
### Block A — Zero-Question First Use (proposed)
|
|
83
84
|
|