create-quiver 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +312 -124
  2. package/README_FOR_AI.md +59 -45
  3. package/ROADMAP.md +12 -11
  4. package/docs/AI_ONBOARDING_PROMPT.md.template +120 -52
  5. package/docs/COMMANDS.md.template +41 -6
  6. package/docs/GITFLOW_PR_GUIDE.md.template +11 -0
  7. package/docs/STANDARD.md.template +1 -1
  8. package/docs/SUPPORT_MATRIX.md.template +4 -0
  9. package/docs/TROUBLESHOOTING.md.template +29 -1
  10. package/docs/WORKFLOW.md.template +1 -1
  11. package/package.json +6 -1
  12. package/package.template.json +11 -6
  13. package/scripts/check-pr-readiness.sh +1 -1
  14. package/scripts/check-scope.sh +0 -1
  15. package/scripts/check-slice-readiness.sh +3 -4
  16. package/scripts/init-docs.sh +55 -9
  17. package/specs/quiver-v19-self-install-dev-dep/EVIDENCE_REPORT.md +2 -2
  18. package/specs/quiver-v19-self-install-dev-dep/STATUS.md +4 -4
  19. package/specs/quiver-v19-self-install-dev-dep/slices/slice-01-auto-install-dev-dep/slice.json +4 -4
  20. package/specs/quiver-v20-ai-cli-orchestration/EVIDENCE_REPORT.md +23 -0
  21. package/specs/quiver-v20-ai-cli-orchestration/EXECUTION_PLAN.md +57 -0
  22. package/specs/quiver-v20-ai-cli-orchestration/SPEC.md +202 -0
  23. package/specs/quiver-v20-ai-cli-orchestration/STATUS.md +35 -0
  24. package/specs/quiver-v20-ai-cli-orchestration/pr.md +100 -0
  25. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
  26. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
  27. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-00-spec-foundation/slice.json +54 -0
  28. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/CLOSURE_BRIEF.md +39 -0
  29. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/EXECUTION_BRIEF.md +63 -0
  30. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-01-ai-provider-runner/slice.json +55 -0
  31. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/CLOSURE_BRIEF.md +40 -0
  32. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/EXECUTION_BRIEF.md +60 -0
  33. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-02-context-packs-token-budget/slice.json +54 -0
  34. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/CLOSURE_BRIEF.md +43 -0
  35. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/EXECUTION_BRIEF.md +62 -0
  36. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/slice.json +62 -0
  37. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/CLOSURE_BRIEF.md +36 -0
  38. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/EXECUTION_BRIEF.md +63 -0
  39. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-04-spec-slice-handoff-pr-generation/slice.json +59 -0
  40. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/CLOSURE_BRIEF.md +32 -0
  41. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/EXECUTION_BRIEF.md +61 -0
  42. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-05-execution-plan-parallel-worktrees/slice.json +59 -0
  43. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/CLOSURE_BRIEF.md +36 -0
  44. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/EXECUTION_BRIEF.md +64 -0
  45. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-06-ai-execute-slice-scope-enforcement/slice.json +65 -0
  46. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/CLOSURE_BRIEF.md +36 -0
  47. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/EXECUTION_BRIEF.md +66 -0
  48. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-07-github-pr-preflight/slice.json +63 -0
  49. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
  50. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/EXECUTION_BRIEF.md +64 -0
  51. package/specs/quiver-v20-ai-cli-orchestration/slices/slice-08-docs-smokes-release-readiness/slice.json +77 -0
  52. package/specs/quiver-v21-ai-first-layout/EVIDENCE_REPORT.md +31 -0
  53. package/specs/quiver-v21-ai-first-layout/EXECUTION_PLAN.md +185 -0
  54. package/specs/quiver-v21-ai-first-layout/SPEC.md +212 -0
  55. package/specs/quiver-v21-ai-first-layout/STATUS.md +37 -0
  56. package/specs/quiver-v21-ai-first-layout/pr.md +110 -0
  57. package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
  58. package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +63 -0
  59. package/specs/quiver-v21-ai-first-layout/slices/slice-00-spec-foundation/slice.json +45 -0
  60. package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/CLOSURE_BRIEF.md +31 -0
  61. package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/EXECUTION_BRIEF.md +59 -0
  62. package/specs/quiver-v21-ai-first-layout/slices/slice-01-init-profiles-dry-run/slice.json +57 -0
  63. package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/CLOSURE_BRIEF.md +32 -0
  64. package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/EXECUTION_BRIEF.md +60 -0
  65. package/specs/quiver-v21-ai-first-layout/slices/slice-02-internal-layout-template-resolver/slice.json +58 -0
  66. package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/CLOSURE_BRIEF.md +34 -0
  67. package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/EXECUTION_BRIEF.md +61 -0
  68. package/specs/quiver-v21-ai-first-layout/slices/slice-03-generation-profiles-visible-contract/slice.json +64 -0
  69. package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/CLOSURE_BRIEF.md +32 -0
  70. package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/EXECUTION_BRIEF.md +58 -0
  71. package/specs/quiver-v21-ai-first-layout/slices/slice-04-analyze-scan-relocation/slice.json +64 -0
  72. package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/CLOSURE_BRIEF.md +32 -0
  73. package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/EXECUTION_BRIEF.md +60 -0
  74. package/specs/quiver-v21-ai-first-layout/slices/slice-05-empty-specs-layout-doctor/slice.json +65 -0
  75. package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/CLOSURE_BRIEF.md +31 -0
  76. package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/EXECUTION_BRIEF.md +62 -0
  77. package/specs/quiver-v21-ai-first-layout/slices/slice-06-legacy-migration-optional-assets/slice.json +66 -0
  78. package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/CLOSURE_BRIEF.md +33 -0
  79. package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/EXECUTION_BRIEF.md +61 -0
  80. package/specs/quiver-v21-ai-first-layout/slices/slice-07-docs-guidance-alignment/slice.json +67 -0
  81. package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/CLOSURE_BRIEF.md +35 -0
  82. package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/EXECUTION_BRIEF.md +66 -0
  83. package/specs/quiver-v21-ai-first-layout/slices/slice-08-smokes-release-readiness/slice.json +62 -0
  84. package/src/create-quiver/commands/ai.js +442 -0
  85. package/src/create-quiver/index.js +421 -84
  86. package/src/create-quiver/lib/ai/context-packs.js +158 -0
  87. package/src/create-quiver/lib/ai/execution-plan.js +254 -0
  88. package/src/create-quiver/lib/ai/executor.js +323 -0
  89. package/src/create-quiver/lib/ai/github.js +329 -0
  90. package/src/create-quiver/lib/ai/phase-gates.js +72 -0
  91. package/src/create-quiver/lib/ai/preflight.js +58 -0
  92. package/src/create-quiver/lib/ai/prompt-transport.js +81 -0
  93. package/src/create-quiver/lib/ai/prompts.js +39 -0
  94. package/src/create-quiver/lib/ai/providers.js +314 -0
  95. package/src/create-quiver/lib/ai/safety.js +151 -0
  96. package/src/create-quiver/lib/ai/spec-generator.js +314 -0
  97. package/src/create-quiver/lib/ai/spec-templates.js +715 -0
  98. package/src/create-quiver/lib/doctor.js +114 -0
  99. package/src/create-quiver/lib/git.js +21 -0
  100. package/src/create-quiver/lib/init-docs.js +286 -25
  101. package/src/create-quiver/lib/init-layout.js +426 -0
  102. package/src/create-quiver/lib/lifecycle.js +2 -2
  103. package/src/create-quiver/lib/paths.js +63 -2
  104. package/src/create-quiver/lib/project-scan.js +66 -0
  105. package/src/create-quiver/lib/readiness.js +4 -2
  106. package/src/create-quiver/lib/scope.js +125 -0
  107. package/src/create-quiver/lib/slice-graph.js +6 -0
  108. package/src/create-quiver/lib/slice.js +51 -8
  109. package/src/create-quiver/lib/state.js +18 -1
  110. package/src/create-quiver/lib/template-resolver.js +74 -0
  111. package/.claude/settings.local.json +0 -52
@@ -0,0 +1,62 @@
1
+ {
2
+ "slice_id": "slice-03-ai-phase-gated-planner",
3
+ "ticket": "QUIVER-20-03",
4
+ "type": "feature",
5
+ "title": "Add phase-gated planner commands",
6
+ "objective": "Add quiver ai onboard and quiver ai plan flows with explicit approval phases and no file writes before the spec phase.",
7
+ "description": "Expose initial AI commands that use the provider runner and context packs. The planner flow must separate acceptance criteria, technical plan, and spec generation so the user can approve each phase before advancing.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "ai-phase-gated-planner",
12
+ "branch_name": "feature/QUIVER-20-03-ai-phase-gated-planner"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/commands/ai.js",
16
+ "src/create-quiver/index.js",
17
+ "src/create-quiver/lib/ai/phase-gates.js",
18
+ "specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/CLOSURE_BRIEF.md",
19
+ "specs/quiver-v20-ai-cli-orchestration/slices/slice-03-ai-phase-gated-planner/slice.json",
20
+ "specs/quiver-v20-ai-cli-orchestration/EVIDENCE_REPORT.md",
21
+ "specs/quiver-v20-ai-cli-orchestration/STATUS.md",
22
+ "tests/commands/ai-plan.test.js",
23
+ "tests/commands/ai-onboard.test.js"
24
+ ],
25
+ "depends_on": [
26
+ "slice-01-ai-provider-runner",
27
+ "slice-02-context-packs-token-budget"
28
+ ],
29
+ "parallel_safe": "after_dependencies",
30
+ "parallel_safe_reason": "Requires provider runner and context packs.",
31
+ "must": [
32
+ "Add command parsing for npx create-quiver ai onboard.",
33
+ "Add command parsing for npx create-quiver ai plan.",
34
+ "Support --provider, --role, --context, --input, --dry-run, and --timeout where applicable.",
35
+ "Default ai onboard to planner role and full context.",
36
+ "Default ai plan acceptance phase to planning context.",
37
+ "Prevent file writes in acceptance and technical-plan phases.",
38
+ "Require explicit phase selection before spec artifact generation.",
39
+ "Print phase output to console."
40
+ ],
41
+ "not_included": [
42
+ "Generating spec files in this slice.",
43
+ "Executing slices.",
44
+ "Opening PRs."
45
+ ],
46
+ "acceptance": [
47
+ "ai onboard --dry-run prints provider, role, context pack, and command plan.",
48
+ "ai plan acceptance phase does not write files.",
49
+ "ai plan technical-plan phase does not write files.",
50
+ "ai plan spec phase delegates to a generator placeholder or clear not-yet-implemented path until slice-04.",
51
+ "Missing input file fails with a clear error.",
52
+ "Provider errors propagate with actionable context."
53
+ ],
54
+ "tests": [
55
+ "node --test tests/commands/ai-plan.test.js tests/commands/ai-onboard.test.js tests/lib/ai-providers.test.js tests/lib/ai-context-packs.test.js",
56
+ "git diff --check"
57
+ ],
58
+ "estimated_hours": 5,
59
+ "actual_hours": 5,
60
+ "status": "completed",
61
+ "blocked_reason": null
62
+ }
@@ -0,0 +1,36 @@
1
+ # CLOSURE BRIEF - slice-04: Spec, slice, handoff, and PR generation
2
+
3
+ ## Resumen de lo realizado
4
+
5
+ Se implemento la fase `spec` de `ai plan` con un generador local que crea `SPEC.md`, `STATUS.md`, `EVIDENCE_REPORT.md`, `EXECUTION_PLAN.md`, `pr.md`, `slice-00` y slices posteriores, valida los `slice.json`, y falla sin overwrite cuando el directorio de spec ya existe.
6
+
7
+ ## Validacion contra criterios de aceptacion
8
+
9
+ - [x] `SPEC.md` generado.
10
+ - [x] `slice-00` generado.
11
+ - [x] Handoffs generados para cada slice.
12
+ - [x] `EXECUTION_PLAN.md` generado.
13
+ - [x] `pr.md` generado.
14
+ - [x] Colisiones fallan sin overwrite.
15
+
16
+ ## Cambios relevantes
17
+
18
+ - `src/create-quiver/lib/ai/spec-generator.js`
19
+ - `src/create-quiver/lib/ai/spec-templates.js`
20
+ - `src/create-quiver/commands/ai.js`
21
+ - `src/create-quiver/lib/ai/phase-gates.js`
22
+ - `tests/lib/ai-spec-generator.test.js`
23
+ - `tests/commands/ai-plan-spec-phase.test.js`
24
+ - `tests/commands/ai-plan.test.js`
25
+
26
+ ## Pendientes
27
+
28
+ Ninguno para esta slice.
29
+
30
+ ## Riesgos remanentes
31
+
32
+ - La primera version depende de `--input` como fuente aprobada. Si el input no trae una forma clara de spec, el generador usa una plantilla segura.
33
+
34
+ ## Recomendaciones futuras
35
+
36
+ Persistir la salida de fases anteriores para que `spec` pueda consumir un contrato estructurado en lugar de solo el input aprobado.
@@ -0,0 +1,63 @@
1
+ # EXECUTION BRIEF - slice-04: Spec, slice, handoff, and PR generation
2
+
3
+ **Spec:** quiver-v20-ai-cli-orchestration
4
+ **Slice:** slice-04-spec-slice-handoff-pr-generation
5
+ **Tipo:** feature
6
+
7
+ ## Contexto
8
+
9
+ Una vez aprobado el plan tecnico, Quiver debe crear artefactos ejecutables para que el trabajo se pueda dividir por slices y PR.
10
+
11
+ ## Objetivo
12
+
13
+ Implementar generacion de `SPEC.md`, `slice-00`, slices, handoffs, `EXECUTION_PLAN.md` y `pr.md`.
14
+
15
+ ## Alcance
16
+
17
+ - Generador de spec directory.
18
+ - Template de slice obligatoria `slice-00`.
19
+ - Handoffs por slice.
20
+ - Validacion de JSON generado.
21
+ - Prevencion de overwrite accidental.
22
+
23
+ ## Criterios de aceptacion
24
+
25
+ - Toda spec generada tiene `slice-00`.
26
+ - Cada slice tiene `EXECUTION_BRIEF.md` y `CLOSURE_BRIEF.md`.
27
+ - `pr.md` siempre existe.
28
+ - Colision de directorio falla sin sobrescribir.
29
+ - JSON generado parsea.
30
+
31
+ ## Plan tecnico resumido
32
+
33
+ Crear `spec-generator.js` y `spec-templates.js`. Integrar la fase `spec` de `ai plan` con el generador. Validar antes de escribir y despues de escribir.
34
+
35
+ ## Pasos sugeridos de ejecucion
36
+
37
+ 1. Definir modelo de input aprobado.
38
+ 2. Crear templates internos.
39
+ 3. Implementar escritura atomica o segura.
40
+ 4. Validar paths y colisiones.
41
+ 5. Integrar con `ai plan --phase spec`.
42
+ 6. Agregar tests.
43
+
44
+ ## Restricciones
45
+
46
+ - No commitear automaticamente.
47
+ - No abrir PR.
48
+ - No ejecutar slices.
49
+
50
+ ## Riesgos
51
+
52
+ - Generar artefactos inconsistentes.
53
+ - Sobrescribir una spec existente.
54
+ - Handoffs demasiado genericos para executors.
55
+
56
+ ## Checklist de finalizacion
57
+
58
+ - [ ] Tests de generador pasan.
59
+ - [ ] Colision cubierta.
60
+ - [ ] slice-00 cubierta.
61
+ - [ ] pr.md cubierta.
62
+ - [ ] JSON parse cubierto.
63
+
@@ -0,0 +1,59 @@
1
+ {
2
+ "slice_id": "slice-04-spec-slice-handoff-pr-generation",
3
+ "ticket": "QUIVER-20-04",
4
+ "type": "feature",
5
+ "title": "Generate specs, slices, handoffs, and PR body after approval",
6
+ "objective": "Implement the artifact generator used by the planner spec phase.",
7
+ "description": "After the user approves the technical plan, Quiver should generate a spec directory with mandatory slice-00, slice.json files, EXECUTION_BRIEF.md, CLOSURE_BRIEF.md, EXECUTION_PLAN.md, and pr.md.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "ai-spec-slice-handoff-generation",
12
+ "branch_name": "feature/QUIVER-20-04-ai-spec-slice-handoff-generation"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/lib/ai/spec-generator.js",
16
+ "src/create-quiver/lib/ai/spec-templates.js",
17
+ "src/create-quiver/commands/ai.js",
18
+ "tests/lib/ai-spec-generator.test.js",
19
+ "tests/commands/ai-plan-spec-phase.test.js"
20
+ ],
21
+ "depends_on": [
22
+ "slice-03-ai-phase-gated-planner"
23
+ ],
24
+ "parallel_safe": "after_dependencies",
25
+ "parallel_safe_reason": "Requires planner phase plumbing.",
26
+ "must": [
27
+ "Generate SPEC.md from approved criteria and plan.",
28
+ "Generate mandatory slice-00.",
29
+ "Generate one or more implementation slices.",
30
+ "Generate EXECUTION_BRIEF.md and CLOSURE_BRIEF.md for every slice.",
31
+ "Generate EXECUTION_PLAN.md with dependencies and parallelization.",
32
+ "Generate pr.md following GitFlow headings.",
33
+ "Avoid overwriting existing spec directories unless an explicit overwrite flag is added and approved.",
34
+ "Validate generated slice.json files before completing."
35
+ ],
36
+ "not_included": [
37
+ "Running executor agents.",
38
+ "Creating GitHub PRs.",
39
+ "Automatically committing generated artifacts."
40
+ ],
41
+ "acceptance": [
42
+ "Generated spec has slice-00.",
43
+ "Every later slice depends on slice-00 directly or indirectly.",
44
+ "Every slice has both execution and closure briefs.",
45
+ "pr.md is always created.",
46
+ "Existing spec directory collision fails safely.",
47
+ "Generated JSON parses successfully."
48
+ ],
49
+ "tests": [
50
+ "node --test tests/lib/ai-spec-generator.test.js tests/commands/ai-plan-spec-phase.test.js",
51
+ "git diff --check"
52
+ ],
53
+ "estimated_hours": 6,
54
+ "status": "completed",
55
+ "blocked_reason": null,
56
+ "actual_hours": 5,
57
+ "started_at": "2026-05-19T17:00:18-0300",
58
+ "completed_at": "2026-05-19T17:00:18-0300"
59
+ }
@@ -0,0 +1,32 @@
1
+ # CLOSURE BRIEF - slice-05: Execution plan and parallel worktrees
2
+
3
+ ## Resumen de lo realizado
4
+
5
+ Se implemento `src/create-quiver/lib/ai/execution-plan.js` para calcular ready levels, integrar la barrera de `slice-00` por spec, separar niveles paralelos y documentar el uso de worktrees temporales. Tambien se extendio `src/create-quiver/lib/slice-graph.js` con helpers para reconocer slices de foundation y se agregaron tests de plan de ejecucion, ciclos y dependencias faltantes.
6
+
7
+ ## Validacion contra criterios de aceptacion
8
+
9
+ - [x] `slice-00` aparece primero en el plan.
10
+ - [x] Ready levels respetan dependencias.
11
+ - [x] Ciclos detectados.
12
+ - [x] Dependencias faltantes detectadas.
13
+ - [x] Smokes existentes siguen pasando.
14
+
15
+ ## Cambios relevantes
16
+
17
+ - Nuevo planner de ejecucion en `src/create-quiver/lib/ai/execution-plan.js`.
18
+ - Barrera de foundation por spec para evitar que slices posteriores adelanten a `slice-00`.
19
+ - Metadatos de worktree temporal por nivel paralelo.
20
+ - Cobertura de tests para ready levels, formatter y errores de grafo.
21
+
22
+ ## Pendientes
23
+
24
+ - Slice-06, Slice-07 y Slice-08 siguen pendientes de implementacion.
25
+
26
+ ## Riesgos remanentes
27
+
28
+ - Los comandos `plan/graph/next` siguen usando su comportamiento actual; si se quiere exponer este plan de ejecucion en CLI, falta cablearlo a un comando.
29
+
30
+ ## Recomendaciones futuras
31
+
32
+ Conectar este planner con una salida de CLI o con `EXECUTION_PLAN.md` si se necesita una vista humana del nivel ready y del orden de integracion.
@@ -0,0 +1,61 @@
1
+ # EXECUTION BRIEF - slice-05: Execution plan and parallel worktrees
2
+
3
+ **Spec:** quiver-v20-ai-cli-orchestration
4
+ **Slice:** slice-05-execution-plan-parallel-worktrees
5
+ **Tipo:** feature
6
+
7
+ ## Contexto
8
+
9
+ El planner debe decir que slices van secuenciales y cuales pueden correr en paralelo. Para paralelismo real, las slices no deben pisarse en la misma worktree.
10
+
11
+ ## Objetivo
12
+
13
+ Agregar representacion de niveles de ejecucion, dependencias, paralelismo e integracion de worktrees temporales.
14
+
15
+ ## Alcance
16
+
17
+ - Tratar `slice-00` como primer bloqueante.
18
+ - Generar niveles ready.
19
+ - Detectar ciclos y dependencias faltantes.
20
+ - Documentar estrategia de worktrees temporales.
21
+ - Mantener compatibilidad con plan/graph/next.
22
+
23
+ ## Criterios de aceptacion
24
+
25
+ - El execution plan muestra `slice-00` primero.
26
+ - Slices paralelas solo aparecen cuando sus dependencias estan satisfechas.
27
+ - Ciclos fallan con diagnostico claro.
28
+ - Dependencias faltantes fallan con diagnostico claro.
29
+ - Smokes actuales siguen pasando.
30
+
31
+ ## Plan tecnico resumido
32
+
33
+ Extender `slice-graph.js` y agregar `ai/execution-plan.js`. Reusar logica existente de plan/graph cuando sea posible. Evitar duplicar algoritmos de dependencias.
34
+
35
+ ## Pasos sugeridos de ejecucion
36
+
37
+ 1. Revisar graph/plan actual.
38
+ 2. Agregar modelo de ready levels.
39
+ 3. Agregar reglas de `slice-00`.
40
+ 4. Agregar diagnosticos de error.
41
+ 5. Agregar tests.
42
+ 6. Correr smoke.
43
+
44
+ ## Restricciones
45
+
46
+ - No ejecutar agentes.
47
+ - No mergear worktrees automaticamente.
48
+ - No romper formatos existentes.
49
+
50
+ ## Riesgos
51
+
52
+ - Regresion en `quiver:plan`, `quiver:graph`, `quiver:next`.
53
+ - Ambiguedad entre paralelizable y paralelo ya ejecutado.
54
+
55
+ ## Checklist de finalizacion
56
+
57
+ - [ ] Tests de execution plan pasan.
58
+ - [ ] Tests de slice graph pasan.
59
+ - [ ] Smoke create-quiver pasa.
60
+ - [ ] Formatos existentes siguen compatibles.
61
+
@@ -0,0 +1,59 @@
1
+ {
2
+ "slice_id": "slice-05-execution-plan-parallel-worktrees",
3
+ "ticket": "QUIVER-20-05",
4
+ "type": "feature",
5
+ "title": "Add execution plan and parallel worktree support",
6
+ "objective": "Represent slice dependencies, ready levels, parallel execution groups, and temporary worktree strategy for slices that can run concurrently.",
7
+ "description": "Extend Quiver's orchestration model so generated specs and existing slice graph commands can reason about slice-00, dependencies, sequential work, parallel-ready work, and integration order.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "ai-execution-plan-parallel-worktrees",
12
+ "branch_name": "feature/QUIVER-20-05-ai-execution-plan-parallel-worktrees"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/lib/ai/execution-plan.js",
16
+ "src/create-quiver/lib/git.js",
17
+ "src/create-quiver/lib/slice-graph.js",
18
+ "src/create-quiver/commands/plan.js",
19
+ "src/create-quiver/commands/graph.js",
20
+ "tests/lib/ai-execution-plan.test.js",
21
+ "tests/lib/slice-graph.test.js"
22
+ ],
23
+ "depends_on": [
24
+ "slice-04-spec-slice-handoff-pr-generation"
25
+ ],
26
+ "parallel_safe": "after_dependencies",
27
+ "parallel_safe_reason": "Can run in parallel with GitHub PR preflight after slice-04 if file ownership is respected.",
28
+ "must": [
29
+ "Treat slice-00 as the first required dependency for generated specs.",
30
+ "Represent ready levels for sequential and parallel execution.",
31
+ "Document when temporary worktrees are needed for parallel slices.",
32
+ "Provide integration order for parallel outputs.",
33
+ "Keep existing quiver:plan, quiver:graph, and quiver:next behavior compatible.",
34
+ "Handle dependency cycles and missing dependency references with clear errors."
35
+ ],
36
+ "not_included": [
37
+ "Running AI executors.",
38
+ "Opening PRs.",
39
+ "Merging temporary worktrees automatically without validation."
40
+ ],
41
+ "acceptance": [
42
+ "Execution plan output shows slice-00 first.",
43
+ "Parallel-ready slices are grouped only after dependencies are satisfied.",
44
+ "Dependency cycles fail with a clear diagnostic.",
45
+ "Missing dependencies fail with a clear diagnostic.",
46
+ "Existing plan/graph/next smokes still pass."
47
+ ],
48
+ "tests": [
49
+ "node --test tests/lib/ai-execution-plan.test.js tests/lib/slice-graph.test.js",
50
+ "npm run smoke:create-quiver",
51
+ "git diff --check"
52
+ ],
53
+ "estimated_hours": 6,
54
+ "status": "completed",
55
+ "blocked_reason": null,
56
+ "actual_hours": 5,
57
+ "started_at": "2026-05-19T17:24:20-0300",
58
+ "completed_at": "2026-05-19T17:24:20-0300"
59
+ }
@@ -0,0 +1,36 @@
1
+ # CLOSURE BRIEF - slice-06: Execute slice with scope enforcement
2
+
3
+ ## Resumen de lo realizado
4
+
5
+ Se implemento `ai execute-slice` con contexto executor minimo, validacion de `slice.json` y `EXECUTION_BRIEF.md`, dry-run sin provider, ejecucion del provider, captura de snapshot Git antes/despues y validacion estricta contra `slice.json.files`.
6
+
7
+ ## Validacion contra criterios de aceptacion
8
+
9
+ - [x] `ai execute-slice` disponible.
10
+ - [x] Falta de `slice.json` falla.
11
+ - [x] Falta de `EXECUTION_BRIEF.md` falla.
12
+ - [x] Dry-run no ejecuta provider.
13
+ - [x] Scope violation detectada.
14
+ - [x] Executor no recibe onboarding completo.
15
+
16
+ ## Cambios relevantes
17
+
18
+ - `src/create-quiver/lib/ai/executor.js`
19
+ - `src/create-quiver/commands/ai.js`
20
+ - `src/create-quiver/index.js`
21
+ - `src/create-quiver/lib/scope.js`
22
+ - `tests/commands/ai-execute-slice.test.js`
23
+ - `tests/lib/ai-executor.test.js`
24
+
25
+ ## Pendientes
26
+
27
+ Ninguno para esta slice.
28
+
29
+ ## Riesgos remanentes
30
+
31
+ - El executor requiere worktree limpio antes de correr para que la comparacion pre/post sea confiable.
32
+ - La validacion de scope depende de `git status --porcelain`; proyectos sin Git no son un caso soportado para ejecucion automatica segura.
33
+
34
+ ## Recomendaciones futuras
35
+
36
+ Mantener scope enforcement estricto aunque el provider complete la tarea correctamente.
@@ -0,0 +1,64 @@
1
+ # EXECUTION BRIEF - slice-06: Execute slice with scope enforcement
2
+
3
+ **Spec:** quiver-v20-ai-cli-orchestration
4
+ **Slice:** slice-06-ai-execute-slice-scope-enforcement
5
+ **Tipo:** feature
6
+
7
+ ## Contexto
8
+
9
+ El executor es un agente de menor costo que puede modificar codigo directamente siguiendo el handoff. Para que sea seguro, Quiver debe controlar el scope antes y despues.
10
+
11
+ ## Objetivo
12
+
13
+ Agregar `quiver ai execute-slice` con contexto minimo y validacion de scope.
14
+
15
+ ## Alcance
16
+
17
+ - Subcomando `ai execute-slice`.
18
+ - Requerir `--slice`.
19
+ - Requerir `slice.json` y `EXECUTION_BRIEF.md`.
20
+ - Preparar prompt executor con contexto `slice` o `minimal`.
21
+ - Capturar diff antes/despues.
22
+ - Ejecutar scope validation.
23
+
24
+ ## Criterios de aceptacion
25
+
26
+ - Falla si falta `slice.json`.
27
+ - Falla si falta `EXECUTION_BRIEF.md`.
28
+ - Dry-run no ejecuta provider.
29
+ - Detecta archivos fuera de scope.
30
+ - No incluye onboarding full.
31
+ - Error de provider sale con codigo no cero.
32
+
33
+ ## Plan tecnico resumido
34
+
35
+ Crear `ai/executor.js` y conectar el subcomando en `commands/ai.js`. Reusar context packs, provider runner y scope validation existente.
36
+
37
+ ## Pasos sugeridos de ejecucion
38
+
39
+ 1. Implementar loader de slice y handoff.
40
+ 2. Implementar prompt executor.
41
+ 3. Integrar provider runner.
42
+ 4. Capturar diff pre/post.
43
+ 5. Validar scope.
44
+ 6. Agregar tests.
45
+
46
+ ## Restricciones
47
+
48
+ - No commitear automaticamente.
49
+ - No arreglar scope violations automaticamente.
50
+ - No correr multiples executors en esta slice.
51
+
52
+ ## Riesgos
53
+
54
+ - Scope validation incompleta.
55
+ - Executor necesita mas contexto que el minimo.
56
+ - Cambios de codigo fuera del handoff.
57
+
58
+ ## Checklist de finalizacion
59
+
60
+ - [ ] Tests de execute-slice pasan.
61
+ - [ ] Dry-run cubierto.
62
+ - [ ] Scope violation cubierto.
63
+ - [ ] Provider failure cubierto.
64
+
@@ -0,0 +1,65 @@
1
+ {
2
+ "slice_id": "slice-06-ai-execute-slice-scope-enforcement",
3
+ "ticket": "QUIVER-20-06",
4
+ "type": "feature",
5
+ "title": "Add executor command with scope enforcement",
6
+ "objective": "Allow a low-cost executor agent to run a slice using minimal context, then verify that changes stayed inside the declared handoff scope.",
7
+ "description": "Implement quiver ai execute-slice with provider selection, executor role defaults, slice context pack, pre-run validation, post-run git diff inspection, and check-scope integration.",
8
+ "git": {
9
+ "branch_type": "feature",
10
+ "base_branch": "main",
11
+ "branch_slug": "ai-execute-slice-scope-enforcement",
12
+ "branch_name": "feature/QUIVER-20-06-ai-execute-slice-scope-enforcement"
13
+ },
14
+ "files": [
15
+ "src/create-quiver/commands/ai.js",
16
+ "src/create-quiver/index.js",
17
+ "src/create-quiver/lib/ai/executor.js",
18
+ "src/create-quiver/lib/ai/context-packs.js",
19
+ "src/create-quiver/lib/scope.js",
20
+ "tests/commands/ai-execute-slice.test.js",
21
+ "tests/lib/ai-executor.test.js"
22
+ ],
23
+ "depends_on": [
24
+ "slice-01-ai-provider-runner",
25
+ "slice-02-context-packs-token-budget",
26
+ "slice-05-execution-plan-parallel-worktrees"
27
+ ],
28
+ "parallel_safe": "after_dependencies",
29
+ "parallel_safe_reason": "Requires provider runner, context packs, and execution planning.",
30
+ "must": [
31
+ "Add npx create-quiver ai execute-slice.",
32
+ "Default role to executor and context to slice or minimal.",
33
+ "Require --slice path.",
34
+ "Require slice.json and EXECUTION_BRIEF.md.",
35
+ "Build an executor prompt from only the slice context pack.",
36
+ "Allow executor to modify code directly within declared scope.",
37
+ "Capture git diff before and after execution.",
38
+ "Run scope validation after execution.",
39
+ "Report scope violations clearly and fail the command."
40
+ ],
41
+ "not_included": [
42
+ "Automatically committing the slice.",
43
+ "Automatically fixing scope violations.",
44
+ "Running multiple executors concurrently."
45
+ ],
46
+ "acceptance": [
47
+ "execute-slice fails if slice.json is missing.",
48
+ "execute-slice fails if EXECUTION_BRIEF.md is missing.",
49
+ "execute-slice --dry-run prints minimal context selection without provider execution.",
50
+ "Post-run validation detects files outside the slice file list.",
51
+ "Executor prompt does not include full onboarding context.",
52
+ "Provider failure exits non-zero and preserves the provider error summary."
53
+ ],
54
+ "tests": [
55
+ "node --test tests/commands/ai-execute-slice.test.js tests/lib/ai-executor.test.js",
56
+ "npm run smoke:create-quiver",
57
+ "git diff --check"
58
+ ],
59
+ "estimated_hours": 6,
60
+ "actual_hours": 5,
61
+ "started_at": "2026-05-19T20:01:48-0300",
62
+ "completed_at": "2026-05-19T20:01:48-0300",
63
+ "status": "completed",
64
+ "blocked_reason": null
65
+ }
@@ -0,0 +1,36 @@
1
+ # CLOSURE BRIEF - slice-07: GitHub PR preflight
2
+
3
+ ## Resumen de lo realizado
4
+
5
+ Se implemento el preflight de GitHub para `ai pr` y `ai doctor` con validacion cross-platform de `gh`, `gh auth status`, remote Git, worktree/rama, GitFlow guide e identidad SSH. Tambien se agregaron opciones separadas para `sshHostAlias` e `identityFile`, y se cubrio `--dry-run` sin abrir PRs.
6
+
7
+ ## Validacion contra criterios de aceptacion
8
+
9
+ - [x] Missing `gh` cubierto.
10
+ - [x] Missing `gh auth` cubierto.
11
+ - [x] Missing GitFlow guide cubierto.
12
+ - [x] Missing identity file cubierto.
13
+ - [x] `sshHostAlias` e `identityFile` separados.
14
+ - [x] Dry-run no crea PR.
15
+
16
+ ## Cambios relevantes
17
+
18
+ - `src/create-quiver/commands/ai.js`
19
+ - `src/create-quiver/index.js`
20
+ - `src/create-quiver/lib/ai/github.js`
21
+ - `src/create-quiver/lib/git.js`
22
+ - `tests/commands/ai-pr.test.js`
23
+ - `tests/lib/ai-github.test.js`
24
+
25
+ ## Pendientes
26
+
27
+ Ninguno para esta slice.
28
+
29
+ ## Riesgos remanentes
30
+
31
+ - `gh auth status` valida el estado de login, pero no correlaciona la cuenta de GitHub con la identidad SSH.
32
+ - El guia GitFlow todavia depende de que el archivo `docs/GITFLOW_PR_GUIDE.md` exista en el repo consumido.
33
+
34
+ ## Recomendaciones futuras
35
+
36
+ Agregar la apertura real de PR cuando slice-08 deje listos los artefactos finales y el flujo documental.
@@ -0,0 +1,66 @@
1
+ # EXECUTION BRIEF - slice-07: GitHub PR preflight
2
+
3
+ **Spec:** quiver-v20-ai-cli-orchestration
4
+ **Slice:** slice-07-github-pr-preflight
5
+ **Tipo:** feature
6
+
7
+ ## Contexto
8
+
9
+ Quiver debe preparar PRs siguiendo `docs/GITFLOW_PR_GUIDE.md`, usando `gh` y configuracion SSH portable. macOS, Linux y Windows necesitan guias distintas.
10
+
11
+ ## Objetivo
12
+
13
+ Agregar preflight para PR con `gh`, auth, remote, worktree, GitFlow guide, `sshHostAlias` e `identityFile`.
14
+
15
+ ## Alcance
16
+
17
+ - Validar `gh`.
18
+ - Validar `gh auth status`.
19
+ - Validar remote Git.
20
+ - Validar worktree/rama.
21
+ - Validar guia GitFlow.
22
+ - Separar alias SSH y identity file.
23
+ - Guiar configuracion sin modificar credenciales automaticamente.
24
+
25
+ ## Criterios de aceptacion
26
+
27
+ - Missing `gh` muestra guia macOS/Linux/Windows.
28
+ - `gh` no autenticado muestra `gh auth login`.
29
+ - Falta GitFlow guide detiene el flujo.
30
+ - Falta identity file muestra path revisado.
31
+ - `sshHostAlias` e `identityFile` son opciones separadas.
32
+ - Dry-run no crea PR.
33
+
34
+ ## Plan tecnico resumido
35
+
36
+ Crear `ai/github.js` y extender preflight. Reusar helpers de Git. Los comandos externos deben usar arrays y ser mockeables en tests.
37
+
38
+ ## Pasos sugeridos de ejecucion
39
+
40
+ 1. Implementar checks de `gh`.
41
+ 2. Implementar checks de auth.
42
+ 3. Implementar checks de remote/worktree.
43
+ 4. Implementar checks SSH.
44
+ 5. Integrar en `ai doctor` y `ai pr`.
45
+ 6. Agregar tests.
46
+
47
+ ## Restricciones
48
+
49
+ - No instalar `gh`.
50
+ - No editar SSH config.
51
+ - No abrir PR en tests.
52
+
53
+ ## Riesgos
54
+
55
+ - Cuenta `gh` distinta al remote SSH.
56
+ - Alias SSH confundido con path de key.
57
+ - Windows path handling.
58
+
59
+ ## Checklist de finalizacion
60
+
61
+ - [ ] Tests de PR preflight pasan.
62
+ - [ ] Missing gh cubierto.
63
+ - [ ] Missing auth cubierto.
64
+ - [ ] Missing SSH cubierto.
65
+ - [ ] Dry-run cubierto.
66
+