create-quiver 0.9.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/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 +2 -2
- package/specs/quiver-v19-self-install-dev-dep/STATUS.md +4 -4
- package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/slice.json +4 -4
- package/src/create-quiver/index.js +3 -3
- package/src/create-quiver/lib/init-docs.js +9 -3
- package/.claude/settings.local.json +0 -52
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
|
|
|
@@ -1,72 +1,130 @@
|
|
|
1
1
|
# {{PROJECT_NAME}} AI Onboarding Prompt
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
3
|
+
**Fecha:** {{FECHA}}
|
|
4
|
+
**Estado:** {{ESTADO}}
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
Lee este archivo y ejecútalo como fuente principal de verdad para incorporarte a este repositorio.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Actúa como asistente de onboarding de IA para este proyecto. Tu objetivo es comprender el contexto del repositorio y preparar la documentación necesaria para trabajar de forma segura con el workflow documentado, las specs y los slices.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
2. `docs/PROJECT_SCAN.json`
|
|
12
|
-
3. `docs/PROJECT_MAP.md`
|
|
13
|
-
4. `docs/CONTEXTO.md`
|
|
14
|
-
5. `docs/WORKFLOW.md`
|
|
15
|
-
6. `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
16
|
-
7. `specs/{{PROJECT_SLUG}}/STATUS.md`
|
|
17
|
-
8. `specs/{{PROJECT_SLUG}}/EVIDENCE_REPORT.md`
|
|
18
|
-
9. `specs/{{PROJECT_SLUG}}/HANDOFF.md` if this work was explicitly transferred through a handoff artifact
|
|
19
|
-
10. `npx create-quiver new-handoff <spec-slug>` if a new handoff artifact needs to be scaffolded before validation
|
|
10
|
+
## Reglas de ejecución
|
|
20
11
|
|
|
21
|
-
|
|
12
|
+
1. Comienza leyendo la documentación necesaria para el onboarding:
|
|
13
|
+
- `README.md`
|
|
14
|
+
- `AGENTS.md`, si existe
|
|
15
|
+
- `docs/AI_ONBOARDING_PROMPT.md`
|
|
16
|
+
- `docs/PROJECT_SCAN.json`
|
|
17
|
+
- `docs/PROJECT_MAP.md`
|
|
18
|
+
- `docs/AI_CONTEXT.md`
|
|
19
|
+
- `docs/CONTEXTO.md`
|
|
20
|
+
- `docs/WORKFLOW.md`
|
|
21
|
+
- `docs/STATUS.md`
|
|
22
|
+
- `docs/DECISIONS.md`, si existe
|
|
23
|
+
- `specs/{{PROJECT_SLUG}}/SPEC.md`
|
|
24
|
+
- `specs/{{PROJECT_SLUG}}/STATUS.md`
|
|
25
|
+
- `specs/{{PROJECT_SLUG}}/EVIDENCE_REPORT.md`
|
|
26
|
+
- `specs/{{PROJECT_SLUG}}/HANDOFF.md`, si este trabajo fue transferido mediante un handoff
|
|
27
|
+
- cualquier documento sobre WDD o SDD referenciado por la documentación de onboarding
|
|
28
|
+
- cualquier archivo de estructura, contexto o convenciones del proyecto referenciado por esos documentos
|
|
22
29
|
|
|
23
|
-
|
|
24
|
-
- Treat `docs/PROJECT_MAP.md` as the single source of truth for stack, package manager, commands, and file hints.
|
|
25
|
-
- Complete or refine Quiver context docs so future agents can work safely.
|
|
26
|
-
- If a handoff artifact exists, treat it as the transfer brief for the current work and validate it against the requested change.
|
|
27
|
-
- If a handoff artifact does not exist yet but the work needs one, scaffold it with `npx create-quiver new-handoff <spec-slug>` and then validate it.
|
|
28
|
-
- Preserve Quiver workflow invariants: one slice = one commit, one spec = one PR.
|
|
29
|
-
- Ask for confirmation before making product-code changes.
|
|
30
|
+
2. Sigue las instrucciones definidas en `docs/AI_ONBOARDING_PROMPT.md`, salvo que entren en conflicto con las restricciones de este prompt.
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
3. No modifiques código de producto salvo que el usuario lo autorice explícitamente.
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
4. Considera como cambios que impactan el producto, y no los realices sin autorización explícita, cualquier modificación sobre:
|
|
35
|
+
- lógica de aplicación o negocio
|
|
36
|
+
- código de UI
|
|
37
|
+
- tests
|
|
38
|
+
- migraciones de base de datos
|
|
39
|
+
- configuración de runtime
|
|
40
|
+
- archivos de dependencias
|
|
41
|
+
- archivos de build
|
|
42
|
+
- archivos generados que no sean documentación/contexto de Quiver requerido por el onboarding
|
|
43
|
+
- manifiestos o lockfiles de paquetes
|
|
34
44
|
|
|
35
|
-
|
|
36
|
-
- **Implementation:** start from `specs/{{PROJECT_SLUG}}/slices/<slice-id>/slice.json`, then read the declared files, nearby tests, and only then adjacent source.
|
|
37
|
-
- **Review:** start from `git diff` and the slice scope before opening full files.
|
|
38
|
-
- **Debug:** start from the command, exit code, first relevant error, stacktrace, and the nearest changed code before reading long logs.
|
|
45
|
+
5. Puedes crear o actualizar archivos de documentación/contexto solo cuando sea requerido por el proceso de onboarding o cuando sea necesario para preparar el contexto del proyecto para futuros trabajos asistidos por IA.
|
|
39
46
|
|
|
40
|
-
|
|
47
|
+
6. Usa la documentación del repositorio como fuente de verdad. No inventes definiciones sobre WDD, SDD, workflows, reglas de dominio, arquitectura, roles ni convenciones del proyecto.
|
|
41
48
|
|
|
42
|
-
|
|
49
|
+
7. Si encuentras información faltante, ambigua o contradictoria:
|
|
50
|
+
- continúa por el camino más seguro y de solo lectura cuando sea posible
|
|
51
|
+
- documenta claramente la suposición realizada
|
|
52
|
+
- identifica el riesgo asociado
|
|
53
|
+
- no modifiques código de producto para resolver la ambigüedad
|
|
43
54
|
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
55
|
+
8. Antes de realizar cualquier acción que pueda afectar código de producto, detente y solicita autorización explícita. Incluye:
|
|
56
|
+
- los archivos que pretendes modificar
|
|
57
|
+
- el motivo de cada cambio
|
|
58
|
+
- el impacto esperado
|
|
59
|
+
- los riesgos asociados
|
|
49
60
|
|
|
50
|
-
|
|
61
|
+
9. Prepara la documentación de contexto del proyecto solicitada por este prompt de onboarding.
|
|
51
62
|
|
|
52
|
-
|
|
53
|
-
2. Update `docs/AI_CONTEXT.md` with the working contract for agents.
|
|
54
|
-
3. Update `docs/CONTEXTO.md` with the human-readable project overview.
|
|
55
|
-
4. Update `docs/STATUS.md` with the initial state and open questions.
|
|
56
|
-
5. If needed, refine `specs/{{PROJECT_SLUG}}/SPEC.md` only to align the onboarding spec with observed reality.
|
|
57
|
-
6. Record the files you inspected, the files you changed, and the assumptions you made.
|
|
63
|
+
10. Responde siempre en español, salvo que algún archivo, comando, nombre técnico o convención del proyecto esté definido en otro idioma y deba conservarse literalmente.
|
|
58
64
|
|
|
59
|
-
##
|
|
65
|
+
## Modo de trabajo
|
|
60
66
|
|
|
61
|
-
|
|
62
|
-
- Note any skipped paths or missing signals.
|
|
63
|
-
- Keep the response focused on documentation and onboarding context unless code changes were explicitly authorized.
|
|
67
|
+
Usa el menor contexto que todavía permita resolver la tarea:
|
|
64
68
|
|
|
65
|
-
|
|
69
|
+
- **Onboarding:** usa mapas y metadatos primero. Lee `docs/PROJECT_SCAN.json` y `docs/PROJECT_MAP.md` antes de abrir archivos fuente. Después usa `docs/AI_CONTEXT.md`, `docs/CONTEXTO.md` y `docs/WORKFLOW.md` para completar vacíos.
|
|
70
|
+
- **Implementación:** no implementes durante onboarding salvo autorización explícita. Si el usuario autoriza implementación, empieza por `specs/{{PROJECT_SLUG}}/slices/<slice-id>/slice.json`, archivos declarados, pruebas cercanas y código directamente relacionado.
|
|
71
|
+
- **Review:** empieza por `git diff` y el alcance del slice antes de abrir archivos completos.
|
|
72
|
+
- **Debug:** empieza por el comando, exit code, primer error relevante, stacktrace y código más cercano al cambio.
|
|
66
73
|
|
|
67
|
-
|
|
74
|
+
Prefiere resúmenes, deltas y metadatos antes que lecturas completas cuando sean suficientes.
|
|
68
75
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
76
|
+
## Tareas
|
|
77
|
+
|
|
78
|
+
1. Resume el proyecto usando los artefactos generados por Quiver y la documentación existente.
|
|
79
|
+
2. Actualiza `docs/AI_CONTEXT.md` con el contrato de trabajo para agentes.
|
|
80
|
+
3. Actualiza `docs/CONTEXTO.md` con una descripción legible para humanos.
|
|
81
|
+
4. Actualiza `docs/STATUS.md` con el estado inicial, dudas abiertas y próximos pasos.
|
|
82
|
+
5. Si hace falta, refina `specs/{{PROJECT_SLUG}}/SPEC.md` solo para alinear la spec de onboarding con la realidad observada.
|
|
83
|
+
6. Si existe un handoff, trátalo como brief de transferencia y valida que aplique al trabajo solicitado.
|
|
84
|
+
7. Si no existe un handoff y el trabajo necesita uno, créalo con `npx create-quiver new-handoff <spec-slug>` y valídalo con `npx create-quiver check-handoff specs/<spec-slug>/HANDOFF.md`.
|
|
85
|
+
8. Registra los archivos inspeccionados, los archivos modificados y las suposiciones realizadas.
|
|
86
|
+
|
|
87
|
+
## Validación
|
|
88
|
+
|
|
89
|
+
- Cita `docs/PROJECT_SCAN.json` y `docs/PROJECT_MAP.md` cuando hagas afirmaciones sobre stack, comandos o estructura.
|
|
90
|
+
- Indica rutas omitidas o señales faltantes.
|
|
91
|
+
- Mantén la respuesta enfocada en documentación y contexto de onboarding salvo que el usuario haya autorizado cambios de código de producto.
|
|
92
|
+
- No cambies reglas del workflow de Quiver salvo que el usuario lo pida explícitamente.
|
|
93
|
+
|
|
94
|
+
## Reporte final
|
|
95
|
+
|
|
96
|
+
Al finalizar, entrega un reporte breve con esta estructura exacta:
|
|
97
|
+
|
|
98
|
+
## Reporte de Onboarding de IA
|
|
99
|
+
|
|
100
|
+
### 1. Archivos Leídos
|
|
101
|
+
|
|
102
|
+
Lista todos los archivos relevantes inspeccionados.
|
|
103
|
+
|
|
104
|
+
### 2. Archivos Creados o Modificados
|
|
105
|
+
|
|
106
|
+
Lista cada archivo modificado. Si no hubo cambios, indica: `No se modificaron archivos`.
|
|
107
|
+
|
|
108
|
+
### 3. Estado del Código de Producto
|
|
109
|
+
|
|
110
|
+
Confirma si se modificó código de producto. Si no se modificó, indica: `No se modificó código de producto`.
|
|
111
|
+
|
|
112
|
+
### 4. Contexto del Proyecto Preparado
|
|
113
|
+
|
|
114
|
+
Resume los documentos de contexto creados o actualizados y su propósito.
|
|
115
|
+
|
|
116
|
+
### 5. Comprensión de WDD/SDD
|
|
117
|
+
|
|
118
|
+
Resume únicamente lo que la documentación del repositorio define sobre WDD y SDD. No agregues supuestos externos. Si la documentación no define esos términos, indícalo explícitamente.
|
|
119
|
+
|
|
120
|
+
### 6. Supuestos
|
|
121
|
+
|
|
122
|
+
Lista todos los supuestos realizados durante el onboarding.
|
|
123
|
+
|
|
124
|
+
### 7. Riesgos y Bloqueos
|
|
125
|
+
|
|
126
|
+
Lista riesgos, información faltante, contradicciones o bloqueos encontrados.
|
|
127
|
+
|
|
128
|
+
### 8. Próximos Pasos Recomendados
|
|
129
|
+
|
|
130
|
+
Sugiere las acciones más seguras para continuar trabajando con IA en este proyecto.
|
|
@@ -4,22 +4,33 @@
|
|
|
4
4
|
**Last updated:** {{FECHA}}
|
|
5
5
|
|
|
6
6
|
This document is the canonical command reference for the orchestration roadmap.
|
|
7
|
-
It is intentionally small at v0.18: only the plan and graph rows are reserved for now, but `quiver:graph` already supports tree, Mermaid, and DOT output modes.
|
|
8
7
|
|
|
9
8
|
## Command Table
|
|
10
9
|
|
|
11
10
|
| Command | Purpose | OS | Since | Example |
|
|
12
11
|
|---------|---------|----|-------|---------|
|
|
13
|
-
| `quiver:plan` | Sequential orchestration planning command | macOS, Linux, Windows | v0.
|
|
14
|
-
| `quiver:graph` | Parallel-level orchestration tree command | macOS, Linux, Windows | v0.
|
|
15
|
-
| `quiver:next` | Ready-slice suggestion command | macOS, Linux, Windows | v0.
|
|
12
|
+
| `quiver:plan` | Sequential orchestration planning command | macOS, Linux, Windows | v0.8 | [docs/examples/plan.md](./examples/plan.md) |
|
|
13
|
+
| `quiver:graph` | Parallel-level orchestration tree command | macOS, Linux, Windows | v0.8 | [docs/examples/graph.md](./examples/graph.md) |
|
|
14
|
+
| `quiver:next` | Ready-slice suggestion command | macOS, Linux, Windows | v0.8 | [docs/examples/next.md](./examples/next.md) |
|
|
15
|
+
|
|
16
|
+
## CLI Flags
|
|
17
|
+
|
|
18
|
+
| Flag | Applies to | Purpose |
|
|
19
|
+
|------|------------|---------|
|
|
20
|
+
| `--skip-install` | `init`, `migrate` | Skip auto-install of `create-quiver` as dev dependency (useful for CI) |
|
|
21
|
+
| `--json` | `plan`, `graph`, `next` | Emit machine-readable JSON |
|
|
22
|
+
| `--format <tree\|mermaid\|dot>` | `graph` | Output format |
|
|
23
|
+
| `--all-ready` | `next` | List all ready slices instead of just the next one |
|
|
24
|
+
| `--only-ready` | `plan` | Show only slices with no pending dependencies |
|
|
25
|
+
| `--spec <slug>` | `plan`, `graph` | Restrict output to one spec |
|
|
16
26
|
|
|
17
27
|
## Notes
|
|
18
28
|
|
|
19
29
|
- Add new rows here only when a command is officially shipped.
|
|
20
30
|
- Keep the table concise and cross-platform.
|
|
21
31
|
- Shared graph library: `src/create-quiver/lib/slice-graph.js`.
|
|
22
|
-
- `quiver:graph --format mermaid` is the PR-friendly export; `--format dot` is for Graphviz consumers.
|
|
32
|
+
- `quiver:graph --format mermaid` is the PR-friendly Mermaid export; `--format dot` is for Graphviz/DOT consumers.
|
|
23
33
|
- `quiver:next` prints the next ready slice and can auto-start it behind a confirmation prompt.
|
|
24
|
-
- `check-slice`
|
|
34
|
+
- `check-slice` validates `depends_on` targets and requires `parallel_safe_reason` when `parallel_safe` is `never`.
|
|
35
|
+
- After `init` or `migrate`, Quiver auto-installs itself as a dev dependency. Use `--skip-install` to suppress.
|
|
25
36
|
- Cross-platform authoring rules live in `docs/SUPPORT_MATRIX.md`.
|
package/package.json
CHANGED
package/scripts/init-docs.sh
CHANGED
|
@@ -587,9 +587,15 @@ Lee \`AGENTS.md\` primero y después \`docs/AI_ONBOARDING_PROMPT.md\` tras el an
|
|
|
587
587
|
After analysis and doctor validation, open your AI agent in this project and run:
|
|
588
588
|
|
|
589
589
|
\`\`\`text
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
590
|
+
Lee \`docs/AI_ONBOARDING_PROMPT.md\` y ejecútalo como fuente principal de verdad para incorporarte a este repositorio.
|
|
591
|
+
|
|
592
|
+
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.
|
|
593
|
+
|
|
594
|
+
No modifiques código de producto salvo autorización explícita. Puedes crear o actualizar documentación de contexto si el onboarding lo requiere.
|
|
595
|
+
|
|
596
|
+
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.
|
|
597
|
+
|
|
598
|
+
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.
|
|
593
599
|
\`\`\`
|
|
594
600
|
|
|
595
601
|
Review the AI changes to docs/AI_CONTEXT.md, docs/CONTEXTO.md, docs/STATUS.md, and specs/$PROJECT_SLUG/SPEC.md before starting implementation work.
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
**Spec:** quiver-v19-self-install-dev-dep
|
|
4
4
|
**Date:** 2026-05-14
|
|
5
|
-
**Status:**
|
|
5
|
+
**Status:** Completed
|
|
6
6
|
|
|
7
7
|
## Slice Evidence
|
|
8
8
|
|
|
9
9
|
| Slice | Status | Evidence |
|
|
10
10
|
|-------|--------|----------|
|
|
11
|
-
| slice-01 |
|
|
11
|
+
| slice-01 | Completed | PR #60 merged 2026-05-14. 40/40 tests pass. Smoke: `--skip-install` no instala, sin flag instala `create-quiver@0.9.0` + `devDependencies: {"create-quiver":"^0.9.0"}`. `npx create-quiver plan` exit 0 sin `@version`. Published as `create-quiver@0.9.0`. |
|
|
12
12
|
|
|
13
13
|
## Required Final Evidence
|
|
14
14
|
|
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
|
|
8
8
|
| Slice | Title | Status | PR | Estimated hours | Actual hours |
|
|
9
9
|
|-------|-------|--------|----|-----------------|--------------|
|
|
10
|
-
| slice-01 | Auto-install create-quiver as dev dependency |
|
|
10
|
+
| slice-01 | Auto-install create-quiver as dev dependency | Completed | #60 | 1.5 | 1.0 |
|
|
11
11
|
|
|
12
12
|
## Progress
|
|
13
13
|
|
|
14
|
-
- Completed slices:
|
|
14
|
+
- Completed slices: 1 / 1
|
|
15
15
|
- Estimated hours: 1.5
|
|
16
|
-
- Actual hours:
|
|
16
|
+
- Actual hours: 1.0
|
|
17
17
|
|
|
18
18
|
## Blockers
|
|
19
19
|
|
|
20
|
-
None.
|
|
20
|
+
None — spec complete.
|
package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/slice.json
CHANGED
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
"npx create-quiver --skip-install --name test --dir /tmp/quiver-test-skip && ls /tmp/quiver-test-skip/node_modules/create-quiver 2>/dev/null && echo FAIL || echo OK"
|
|
48
48
|
],
|
|
49
49
|
"estimated_hours": 1.5,
|
|
50
|
-
"actual_hours":
|
|
51
|
-
"status": "
|
|
50
|
+
"actual_hours": 1,
|
|
51
|
+
"status": "completed",
|
|
52
52
|
"blocked_reason": null,
|
|
53
53
|
"ready_at": "2026-05-14T00:00:00Z",
|
|
54
|
-
"started_at":
|
|
55
|
-
"completed_at":
|
|
54
|
+
"started_at": "2026-05-14T00:00:00Z",
|
|
55
|
+
"completed_at": "2026-05-14T00:00:00Z"
|
|
56
56
|
}
|
|
@@ -1138,7 +1138,7 @@ function runAnalyze(targetDir) {
|
|
|
1138
1138
|
console.log(`Detected package manager: ${scan.project.package_manager}`);
|
|
1139
1139
|
}
|
|
1140
1140
|
|
|
1141
|
-
function runMigrate(targetDir) {
|
|
1141
|
+
function runMigrate(targetDir, options = {}) {
|
|
1142
1142
|
const projectRoot = resolveTargetRoot(process.cwd(), targetDir);
|
|
1143
1143
|
|
|
1144
1144
|
if (!fs.existsSync(projectRoot)) {
|
|
@@ -1165,7 +1165,7 @@ function runMigrate(targetDir) {
|
|
|
1165
1165
|
});
|
|
1166
1166
|
updateStateForMigrate(projectRoot, projectName, CLI_VERSION);
|
|
1167
1167
|
|
|
1168
|
-
if (!
|
|
1168
|
+
if (!options.skipInstall) {
|
|
1169
1169
|
const installResult = installSelfAsDevDep(projectRoot, CLI_VERSION);
|
|
1170
1170
|
if (installResult === 'installed') {
|
|
1171
1171
|
console.log(`Added create-quiver@${CLI_VERSION} as dev dependency`);
|
|
@@ -1350,7 +1350,7 @@ async function run(argv) {
|
|
|
1350
1350
|
}
|
|
1351
1351
|
|
|
1352
1352
|
if (args.mode === 'migrate') {
|
|
1353
|
-
runMigrate(args.targetDir);
|
|
1353
|
+
runMigrate(args.targetDir, { skipInstall: args.skipInstall });
|
|
1354
1354
|
return;
|
|
1355
1355
|
}
|
|
1356
1356
|
|
|
@@ -335,9 +335,15 @@ Read \`AGENTS.md\` first, then open \`docs/AI_ONBOARDING_PROMPT.md\` after analy
|
|
|
335
335
|
After analysis and doctor validation, open your AI agent in this project and run:
|
|
336
336
|
|
|
337
337
|
\`\`\`text
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
338
|
+
Lee \`docs/AI_ONBOARDING_PROMPT.md\` y ejecútalo como fuente principal de verdad para incorporarte a este repositorio.
|
|
339
|
+
|
|
340
|
+
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.
|
|
341
|
+
|
|
342
|
+
No modifiques código de producto salvo autorización explícita. Puedes crear o actualizar documentación de contexto si el onboarding lo requiere.
|
|
343
|
+
|
|
344
|
+
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.
|
|
345
|
+
|
|
346
|
+
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.
|
|
341
347
|
\`\`\`
|
|
342
348
|
|
|
343
349
|
Review the AI changes to docs/AI_CONTEXT.md, docs/CONTEXTO.md, docs/STATUS.md, and specs/${projectSlug}/SPEC.md before starting implementation work. Use \`docs/PROJECT_MAP.md\` for stack and command details.
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"permissions": {
|
|
3
|
-
"allow": [
|
|
4
|
-
"Bash(git fetch *)",
|
|
5
|
-
"Bash(git checkout *)",
|
|
6
|
-
"Bash(git add *)",
|
|
7
|
-
"Bash(git commit -m ' *)",
|
|
8
|
-
"Bash(git cherry-pick *)",
|
|
9
|
-
"Bash(git reset *)",
|
|
10
|
-
"Bash(gh pr create --title 'docs: register v17-v22 orchestration plan and park web console idea' --base main --head docs/register-orchestration-plan-park-web-console --body ' *)",
|
|
11
|
-
"Bash(gh auth *)",
|
|
12
|
-
"Bash(gh pr *)",
|
|
13
|
-
"Bash(node -e \"const g=require\\('./src/create-quiver/lib/slice-graph'\\); const slices=g.readAllSlices\\('.'\\); console.log\\('Total slices:', slices.length\\); const graph=g.buildGraph\\(slices\\); const levels=g.computeLevels\\(graph\\); console.log\\('Levels:', levels.length\\);\")",
|
|
14
|
-
"Bash(npx . plan)",
|
|
15
|
-
"Bash(git pull *)",
|
|
16
|
-
"Read(//Users/fabrijk/Documents/Work/Proyectos Personales/nika/frameworks/.worktrees/quiver/bugfix-QUIVER-01-fix-legacy-dependency-resolution/**)",
|
|
17
|
-
"Bash(node --test tests/)",
|
|
18
|
-
"Bash(node --test tests/**/*.test.js)",
|
|
19
|
-
"Bash(node bin/create-quiver.js plan)",
|
|
20
|
-
"Bash(echo \"EXIT_$?\")",
|
|
21
|
-
"Bash(node bin/create-quiver.js plan --json)",
|
|
22
|
-
"Bash(node -e \"const d=JSON.parse\\(require\\('fs'\\).readFileSync\\('/dev/stdin','utf8'\\)\\); console.log\\('plan items:', Array.isArray\\(d.plan\\) ? d.plan.length : 'NOT ARRAY'\\); console.log\\('critical_path:', Array.isArray\\(d.critical_path\\)\\); console.log\\('total_hours:', typeof d.total_hours\\); process.exit\\(Array.isArray\\(d.plan\\) && Array.isArray\\(d.critical_path\\) && typeof d.total_hours === 'number' ? 0 : 1\\)\")",
|
|
23
|
-
"Bash(grep -v \"^\\\\-\\\\-$\")",
|
|
24
|
-
"Bash(echo \"EXIT:$?\")",
|
|
25
|
-
"Bash(node -e \"const d=JSON.parse\\(require\\('fs'\\).readFileSync\\('/tmp/plan_json.txt','utf8'\\)\\); console.log\\('plan:', Array.isArray\\(d.plan\\) ? d.plan.length + ' items' : 'INVALID'\\); console.log\\('critical_path:', Array.isArray\\(d.critical_path\\)\\); console.log\\('total_hours:', typeof d.total_hours\\)\")",
|
|
26
|
-
"Bash(xargs git branch -d)",
|
|
27
|
-
"Bash(git branch *)",
|
|
28
|
-
"Read(//private/tmp/**)",
|
|
29
|
-
"Read(//Users/fabrijk/Documents/Work/Proyectos Personales/nika/frameworks/quiver-v18-slice02/**)",
|
|
30
|
-
"Bash(git worktree *)",
|
|
31
|
-
"Bash(git ls-remote *)",
|
|
32
|
-
"Bash(node *)",
|
|
33
|
-
"Bash(npm view *)",
|
|
34
|
-
"Bash(bash scripts/release-quiver.sh)",
|
|
35
|
-
"Bash(git stash *)",
|
|
36
|
-
"Bash(npm whoami *)",
|
|
37
|
-
"Bash(bash scripts/release-quiver.sh --publish-current)",
|
|
38
|
-
"Bash(npm pkg *)",
|
|
39
|
-
"Bash(NPM_TOKEN=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 npm publish --access public)",
|
|
40
|
-
"Bash(NPM_TOKEN=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 npm publish --access public)",
|
|
41
|
-
"Bash(npm info *)",
|
|
42
|
-
"Bash(npm publish *)",
|
|
43
|
-
"Bash(rm -rf /tmp/quiver-skip-test)",
|
|
44
|
-
"Bash(mkdir -p /tmp/quiver-skip-test)",
|
|
45
|
-
"Bash(echo '{\"name\":\"test\",\"scripts\":{}}')",
|
|
46
|
-
"Bash(ls /tmp/quiver-skip-test/node_modules/create-quiver)",
|
|
47
|
-
"Bash(rm -rf /tmp/quiver-install-test)",
|
|
48
|
-
"Bash(mkdir -p /tmp/quiver-install-test)",
|
|
49
|
-
"Bash(npm config *)"
|
|
50
|
-
]
|
|
51
|
-
}
|
|
52
|
-
}
|