create-quiver 0.10.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BACKLOG.md +16 -17
- package/CHANGELOG.md +34 -0
- package/README.md +174 -39
- package/README_FOR_AI.md +48 -24
- package/ROADMAP.md +22 -11
- package/docs/AI_CONTEXT.md.template +2 -0
- package/docs/AI_ONBOARDING_PROMPT.md.template +25 -18
- package/docs/COMMANDS.md.template +59 -11
- package/docs/CONTEXTO.md.template +2 -0
- package/docs/DECISIONS.md.template +1 -0
- package/docs/INDEX.md.template +20 -18
- package/docs/STATUS.md.template +1 -0
- package/docs/SUPPORT_MATRIX.md.template +2 -2
- package/docs/TROUBLESHOOTING.md.template +50 -0
- package/docs/WORKFLOW.md.template +25 -17
- package/package.json +19 -2
- package/package.template.json +13 -1
- package/scripts/init-docs.sh +11 -4
- package/scripts/package-quiver.sh +18 -2
- package/specs/quiver-v22-guided-ai-workflow/EVIDENCE_REPORT.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/EXECUTION_PLAN.md +88 -0
- package/specs/quiver-v22-guided-ai-workflow/SPEC.md +228 -0
- package/specs/quiver-v22-guided-ai-workflow/STATUS.md +42 -0
- package/specs/quiver-v22-guided-ai-workflow/pr.md +104 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +35 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-00-spec-foundation/slice.json +51 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-01-docs-source-of-truth-sync/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-01-docs-source-of-truth-sync/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-01-docs-source-of-truth-sync/slice.json +55 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-02-prepare-command-diagnostics/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-02-prepare-command-diagnostics/EXECUTION_BRIEF.md +57 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-02-prepare-command-diagnostics/slice.json +57 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-03-context-doc-refresh/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-03-context-doc-refresh/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-03-context-doc-refresh/slice.json +56 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-04-planner-approval-state/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-04-planner-approval-state/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-04-planner-approval-state/slice.json +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-05-spec-worktree-lifecycle/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-05-spec-worktree-lifecycle/EXECUTION_BRIEF.md +56 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-05-spec-worktree-lifecycle/slice.json +54 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-06-executor-commit-recovery/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-06-executor-commit-recovery/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-06-executor-commit-recovery/slice.json +57 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-07-execution-waves-delegation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-07-execution-waves-delegation/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-07-execution-waves-delegation/slice.json +55 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-08-pr-create-gh-ssh/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-08-pr-create-gh-ssh/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-08-pr-create-gh-ssh/slice.json +53 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-09-post-merge-cleanup-release-safety/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-09-post-merge-cleanup-release-safety/EXECUTION_BRIEF.md +59 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-09-post-merge-cleanup-release-safety/slice.json +59 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-10-docs-smokes-release-readiness/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-10-docs-smokes-release-readiness/EXECUTION_BRIEF.md +58 -0
- package/specs/quiver-v22-guided-ai-workflow/slices/slice-10-docs-smokes-release-readiness/slice.json +60 -0
- package/specs/quiver-v23-guided-flow-productization/EVIDENCE_REPORT.md +80 -0
- package/specs/quiver-v23-guided-flow-productization/EXECUTION_PLAN.md +80 -0
- package/specs/quiver-v23-guided-flow-productization/SPEC.md +203 -0
- package/specs/quiver-v23-guided-flow-productization/STATUS.md +39 -0
- package/specs/quiver-v23-guided-flow-productization/pr.md +119 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +61 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-00-spec-foundation/slice.json +51 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-01-short-command-and-flow-entrypoint/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-01-short-command-and-flow-entrypoint/EXECUTION_BRIEF.md +35 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-01-short-command-and-flow-entrypoint/slice.json +56 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-02-flow-status-wizard/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-02-flow-status-wizard/EXECUTION_BRIEF.md +29 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-02-flow-status-wizard/slice.json +55 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-03-agent-profiles/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-03-agent-profiles/EXECUTION_BRIEF.md +29 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-03-agent-profiles/slice.json +54 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-04-context-preparation-onboarding/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-04-context-preparation-onboarding/EXECUTION_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-04-context-preparation-onboarding/slice.json +59 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-05-planner-iteration-history/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-05-planner-iteration-history/EXECUTION_BRIEF.md +29 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-05-planner-iteration-history/slice.json +53 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-06-production-plan-review/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-06-production-plan-review/EXECUTION_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-06-production-plan-review/slice.json +54 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-07-spec-create-experience/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-07-spec-create-experience/EXECUTION_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-07-spec-create-experience/slice.json +55 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-08-executor-prompt-generation/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-08-executor-prompt-generation/EXECUTION_BRIEF.md +30 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-08-executor-prompt-generation/slice.json +55 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-09-delegated-slice-execution/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-09-delegated-slice-execution/EXECUTION_BRIEF.md +34 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-09-delegated-slice-execution/slice.json +57 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-10-docs-smokes-release-readiness/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-10-docs-smokes-release-readiness/EXECUTION_BRIEF.md +32 -0
- package/specs/quiver-v23-guided-flow-productization/slices/slice-10-docs-smokes-release-readiness/slice.json +63 -0
- package/specs/quiver-v24-dx-onboarding-hardening/EVIDENCE_REPORT.md +55 -0
- package/specs/quiver-v24-dx-onboarding-hardening/EXECUTION_PLAN.md +43 -0
- package/specs/quiver-v24-dx-onboarding-hardening/SPEC.md +149 -0
- package/specs/quiver-v24-dx-onboarding-hardening/STATUS.md +31 -0
- package/specs/quiver-v24-dx-onboarding-hardening/pr.md +76 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-00-spec-foundation/CLOSURE_BRIEF.md +31 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-00-spec-foundation/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-00-spec-foundation/slice.json +51 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-01-init-template-hygiene/CLOSURE_BRIEF.md +38 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-01-init-template-hygiene/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-01-init-template-hygiene/slice.json +55 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-02-cli-command-routing-version-errors/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-02-cli-command-routing-version-errors/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-02-cli-command-routing-version-errors/slice.json +52 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-03-doctor-fix-doc-link-checks/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-03-doctor-fix-doc-link-checks/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-03-doctor-fix-doc-link-checks/slice.json +53 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-04-prepare-output-ai-context-drafts/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-04-prepare-output-ai-context-drafts/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-04-prepare-output-ai-context-drafts/slice.json +70 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-05-local-slice-validation-base-guidance/CLOSURE_BRIEF.md +36 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-05-local-slice-validation-base-guidance/EXECUTION_BRIEF.md +49 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-05-local-slice-validation-base-guidance/slice.json +52 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-06-plan-graph-next-history-views/CLOSURE_BRIEF.md +43 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-06-plan-graph-next-history-views/EXECUTION_BRIEF.md +53 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-06-plan-graph-next-history-views/slice.json +60 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-07-analyzer-command-map-hardening/CLOSURE_BRIEF.md +32 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-07-analyzer-command-map-hardening/EXECUTION_BRIEF.md +50 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-07-analyzer-command-map-hardening/slice.json +51 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-08-evidence-run-command/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-08-evidence-run-command/EXECUTION_BRIEF.md +52 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-08-evidence-run-command/slice.json +54 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-09-spec-viewer-demo-scaffolding/CLOSURE_BRIEF.md +34 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-09-spec-viewer-demo-scaffolding/EXECUTION_BRIEF.md +51 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-09-spec-viewer-demo-scaffolding/slice.json +59 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-10-docs-smokes-release-readiness/CLOSURE_BRIEF.md +33 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-10-docs-smokes-release-readiness/EXECUTION_BRIEF.md +54 -0
- package/specs/quiver-v24-dx-onboarding-hardening/slices/slice-10-docs-smokes-release-readiness/slice.json +76 -0
- package/src/create-quiver/commands/ai.js +508 -35
- package/src/create-quiver/commands/demo.js +22 -0
- package/src/create-quiver/commands/evidence.js +37 -0
- package/src/create-quiver/commands/flow.js +561 -0
- package/src/create-quiver/commands/graph.js +14 -1
- package/src/create-quiver/commands/next.js +28 -0
- package/src/create-quiver/commands/plan.js +6 -3
- package/src/create-quiver/commands/prepare.js +236 -0
- package/src/create-quiver/commands/spec.js +133 -0
- package/src/create-quiver/index.js +688 -25
- package/src/create-quiver/lib/agent-profiles.js +148 -0
- package/src/create-quiver/lib/ai/context-packs.js +12 -0
- package/src/create-quiver/lib/ai/execution-plan.js +370 -10
- package/src/create-quiver/lib/ai/executor.js +376 -17
- package/src/create-quiver/lib/ai/github.js +196 -0
- package/src/create-quiver/lib/ai/onboarding-template.js +365 -0
- package/src/create-quiver/lib/ai/plan-review.js +283 -0
- package/src/create-quiver/lib/ai/providers.js +1 -0
- package/src/create-quiver/lib/ai/safety.js +5 -0
- package/src/create-quiver/lib/ai/spec-templates.js +2 -2
- package/src/create-quiver/lib/approvals.js +350 -0
- package/src/create-quiver/lib/demo.js +657 -0
- package/src/create-quiver/lib/doctor.js +234 -0
- package/src/create-quiver/lib/evidence.js +115 -0
- package/src/create-quiver/lib/init-docs.js +284 -17
- package/src/create-quiver/lib/init-layout.js +26 -1
- package/src/create-quiver/lib/lifecycle.js +6 -0
- package/src/create-quiver/lib/package-safety.js +117 -0
- package/src/create-quiver/lib/readiness.js +85 -18
- package/src/create-quiver/lib/slice-graph.js +1 -0
- package/src/create-quiver/lib/slice.js +8 -8
- package/src/create-quiver/lib/spec-worktrees.js +349 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-03-context-doc-refresh",
|
|
3
|
+
"ticket": "QUIVER-22-03",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Context documentation refresh and safe analyzer output",
|
|
6
|
+
"objective": "Improve project context generation so AI onboarding can use concise, safe, updated docs.",
|
|
7
|
+
"description": "Enhance analysis/preparation to refresh AI-facing context docs while excluding secrets, generated files, dependency folders, large artifacts, and local AI tool state.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "context-doc-refresh",
|
|
12
|
+
"branch_name": "feature/QUIVER-22-03-context-doc-refresh"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/index.js",
|
|
16
|
+
"src/create-quiver/lib/project-scan.js",
|
|
17
|
+
"src/create-quiver/lib/init-docs.js",
|
|
18
|
+
"src/create-quiver/lib/ai/context-packs.js",
|
|
19
|
+
"src/create-quiver/lib/ai/safety.js",
|
|
20
|
+
"tests/commands/analyze.test.js",
|
|
21
|
+
"tests/lib/ai-context-packs.test.js"
|
|
22
|
+
],
|
|
23
|
+
"depends_on": [
|
|
24
|
+
"slice-02-prepare-command-diagnostics"
|
|
25
|
+
],
|
|
26
|
+
"parallel_safe": "no",
|
|
27
|
+
"parallel_safe_reason": "Context generation feeds planner phases and must be stable first.",
|
|
28
|
+
"must": [
|
|
29
|
+
"Refresh useful AI context docs from detected project facts.",
|
|
30
|
+
"Keep raw scan under .quiver/scans.",
|
|
31
|
+
"Exclude secrets, env files, build outputs, dependency folders, package caches, and local AI tool state.",
|
|
32
|
+
"Report assumptions and information that still needs human completion.",
|
|
33
|
+
"Avoid pretending analysis understands business rules not present in the repo."
|
|
34
|
+
],
|
|
35
|
+
"not_included": [
|
|
36
|
+
"Planner approval persistence.",
|
|
37
|
+
"Spec generation changes.",
|
|
38
|
+
"Provider execution changes."
|
|
39
|
+
],
|
|
40
|
+
"acceptance": [
|
|
41
|
+
"analyze or prepare refreshes concise AI context docs without exposing unsafe paths.",
|
|
42
|
+
"docs/PROJECT_MAP.md remains the visible stack and command source.",
|
|
43
|
+
".quiver/scans/PROJECT_SCAN.json remains internal raw scan output.",
|
|
44
|
+
"Generated context includes assumptions and missing information.",
|
|
45
|
+
"Large/noisy/secret paths are excluded by tests."
|
|
46
|
+
],
|
|
47
|
+
"tests": [
|
|
48
|
+
"node --test tests/commands/analyze.test.js tests/lib/ai-context-packs.test.js",
|
|
49
|
+
"git diff --check"
|
|
50
|
+
],
|
|
51
|
+
"estimated_hours": 7,
|
|
52
|
+
"status": "completed",
|
|
53
|
+
"blocked_reason": null,
|
|
54
|
+
"actual_hours": 2,
|
|
55
|
+
"completed_at": "2026-05-21T11:37:41-0300"
|
|
56
|
+
}
|
package/specs/quiver-v22-guided-ai-workflow/slices/slice-04-planner-approval-state/CLOSURE_BRIEF.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-04: Planner approval state
|
|
2
|
+
|
|
3
|
+
## Resumen de lo realizado
|
|
4
|
+
|
|
5
|
+
Se agrego persistencia de borradores y aprobaciones para fases planner, con bloqueo entre fases, uso de inputs aprobados por defecto y estado visible mediante `npx create-quiver ai approvals`.
|
|
6
|
+
|
|
7
|
+
## Validacion contra criterios de aceptacion
|
|
8
|
+
|
|
9
|
+
- [x] Fases bloquean inputs no aprobados.
|
|
10
|
+
- [x] Aprobaciones persistidas.
|
|
11
|
+
- [x] Status disponible.
|
|
12
|
+
- [x] Tests ejecutados.
|
|
13
|
+
|
|
14
|
+
## Cambios relevantes
|
|
15
|
+
|
|
16
|
+
- `src/create-quiver/lib/approvals.js`
|
|
17
|
+
- `src/create-quiver/commands/ai.js`
|
|
18
|
+
- `src/create-quiver/index.js`
|
|
19
|
+
- `tests/lib/approvals.test.js`
|
|
20
|
+
- `tests/commands/ai-plan.test.js`
|
|
21
|
+
- `tests/commands/ai-plan-spec-phase.test.js`
|
|
22
|
+
|
|
23
|
+
## Pendientes
|
|
24
|
+
|
|
25
|
+
Ninguno para esta slice.
|
|
26
|
+
|
|
27
|
+
## Riesgos remanentes
|
|
28
|
+
|
|
29
|
+
El estado `stale` depende de timestamps y existencia del archivo fuente. Si se edita manualmente `.quiver/approvals/`, Quiver puede marcar el estado como inconsistente.
|
|
30
|
+
|
|
31
|
+
## Recomendaciones futuras
|
|
32
|
+
|
|
33
|
+
Usar las aprobaciones persistidas como base para el ciclo de vida de worktree por spec en `slice-05`.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-04: Planner approval state
|
|
2
|
+
|
|
3
|
+
**Spec:** quiver-v22-guided-ai-workflow
|
|
4
|
+
**Slice:** slice-04-planner-approval-state
|
|
5
|
+
**Tipo:** feature
|
|
6
|
+
|
|
7
|
+
## Contexto
|
|
8
|
+
|
|
9
|
+
El flujo requiere iterar criterios y planes, pero solo usar versiones aprobadas para avanzar.
|
|
10
|
+
|
|
11
|
+
## Objetivo
|
|
12
|
+
|
|
13
|
+
Persistir borradores y aprobaciones explicitas para acceptance criteria y technical plan.
|
|
14
|
+
|
|
15
|
+
## Alcance
|
|
16
|
+
|
|
17
|
+
- Estado de aprobaciones en `.quiver/`.
|
|
18
|
+
- Comandos o subcomandos de aprobacion.
|
|
19
|
+
- Bloqueos entre fases.
|
|
20
|
+
- Estado legible para el usuario.
|
|
21
|
+
|
|
22
|
+
## Criterios de aceptacion
|
|
23
|
+
|
|
24
|
+
- Nada no aprobado alimenta la fase siguiente.
|
|
25
|
+
- Las aprobaciones tienen metadata minima.
|
|
26
|
+
- El usuario puede ver que falta aprobar.
|
|
27
|
+
- La fase spec usa el plan aprobado por defecto.
|
|
28
|
+
|
|
29
|
+
## Plan tecnico resumido
|
|
30
|
+
|
|
31
|
+
Crear una capa de approvals reutilizable por `ai plan`, con guardas de fase y tests de transiciones.
|
|
32
|
+
|
|
33
|
+
## Pasos sugeridos de ejecucion
|
|
34
|
+
|
|
35
|
+
1. Revisar `phase-gates.js`.
|
|
36
|
+
2. Definir formato interno de aprobaciones.
|
|
37
|
+
3. Agregar persistencia y lectura.
|
|
38
|
+
4. Integrar comandos.
|
|
39
|
+
5. Agregar tests de bloqueo y avance.
|
|
40
|
+
|
|
41
|
+
## Restricciones
|
|
42
|
+
|
|
43
|
+
- No versionar borradores internos salvo decision explicita.
|
|
44
|
+
- No modificar codigo de producto.
|
|
45
|
+
|
|
46
|
+
## Riesgos
|
|
47
|
+
|
|
48
|
+
- Que el estado interno y los archivos visibles diverjan.
|
|
49
|
+
- Que una aprobacion vieja alimente una spec nueva.
|
|
50
|
+
|
|
51
|
+
## Checklist de finalizacion
|
|
52
|
+
|
|
53
|
+
- [ ] Draft/approved diferenciado.
|
|
54
|
+
- [ ] Bloqueos entre fases cubiertos.
|
|
55
|
+
- [ ] Status legible.
|
|
56
|
+
- [ ] Tests pasan.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-04-planner-approval-state",
|
|
3
|
+
"ticket": "QUIVER-22-04",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Planner approval state for criteria and technical plans",
|
|
6
|
+
"objective": "Persist draft and approved planner outputs so each phase consumes an explicit approved input.",
|
|
7
|
+
"description": "Add approval state for acceptance criteria and technical plans, preventing Quiver from generating specs from unapproved or ambiguous outputs.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "planner-approval-state",
|
|
12
|
+
"branch_name": "feature/QUIVER-22-04-planner-approval-state"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/commands/ai.js",
|
|
16
|
+
"src/create-quiver/lib/ai/phase-gates.js",
|
|
17
|
+
"src/create-quiver/lib/ai/spec-generator.js",
|
|
18
|
+
"src/create-quiver/lib/state.js",
|
|
19
|
+
"src/create-quiver/lib/approvals.js",
|
|
20
|
+
"tests/commands/ai-plan.test.js",
|
|
21
|
+
"tests/commands/ai-plan-spec-phase.test.js",
|
|
22
|
+
"tests/lib/approvals.test.js"
|
|
23
|
+
],
|
|
24
|
+
"depends_on": [
|
|
25
|
+
"slice-03-context-doc-refresh"
|
|
26
|
+
],
|
|
27
|
+
"parallel_safe": "no",
|
|
28
|
+
"parallel_safe_reason": "Approval state is the contract consumed by spec generation.",
|
|
29
|
+
"must": [
|
|
30
|
+
"Persist draft acceptance criteria.",
|
|
31
|
+
"Persist approved acceptance criteria only after explicit approval.",
|
|
32
|
+
"Persist draft technical plan.",
|
|
33
|
+
"Persist approved technical plan only after explicit approval.",
|
|
34
|
+
"Block spec generation when the approved plan is missing.",
|
|
35
|
+
"Show status of draft versus approved artifacts."
|
|
36
|
+
],
|
|
37
|
+
"not_included": [
|
|
38
|
+
"Creating worktrees.",
|
|
39
|
+
"Executing slices.",
|
|
40
|
+
"Opening PRs."
|
|
41
|
+
],
|
|
42
|
+
"acceptance": [
|
|
43
|
+
"Unapproved acceptance criteria cannot feed the technical-plan phase.",
|
|
44
|
+
"Unapproved technical plans cannot feed spec generation.",
|
|
45
|
+
"Approvals are stored with timestamp, source file or run id, and phase.",
|
|
46
|
+
"A status command shows what is draft, approved, missing, or stale.",
|
|
47
|
+
"Spec generation consumes approved input by default."
|
|
48
|
+
],
|
|
49
|
+
"tests": [
|
|
50
|
+
"node --test tests/commands/ai-plan.test.js tests/commands/ai-plan-spec-phase.test.js tests/lib/approvals.test.js",
|
|
51
|
+
"git diff --check"
|
|
52
|
+
],
|
|
53
|
+
"estimated_hours": 8,
|
|
54
|
+
"status": "completed",
|
|
55
|
+
"blocked_reason": null,
|
|
56
|
+
"actual_hours": 2,
|
|
57
|
+
"completed_at": "2026-05-21T11:46:03-0300"
|
|
58
|
+
}
|
package/specs/quiver-v22-guided-ai-workflow/slices/slice-05-spec-worktree-lifecycle/CLOSURE_BRIEF.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-05: Spec worktree lifecycle
|
|
2
|
+
|
|
3
|
+
## Resumen de lo realizado
|
|
4
|
+
|
|
5
|
+
Se agrego el flujo de worktree a nivel spec con comandos `spec start` y `spec status`. Tambien se bloqueo `start-slice` para slices posteriores cuando `slice-00` no esta completada.
|
|
6
|
+
|
|
7
|
+
## Validacion contra criterios de aceptacion
|
|
8
|
+
|
|
9
|
+
- [x] Worktree por spec implementado.
|
|
10
|
+
- [x] `slice-00` bloquea slices posteriores.
|
|
11
|
+
- [x] Estado visible.
|
|
12
|
+
- [x] Tests ejecutados.
|
|
13
|
+
|
|
14
|
+
## Cambios relevantes
|
|
15
|
+
|
|
16
|
+
- Nuevo helper `src/create-quiver/lib/spec-worktrees.js`.
|
|
17
|
+
- Nuevo comando `npx create-quiver spec start <spec-dir>`.
|
|
18
|
+
- Nuevo comando `npx create-quiver spec status <spec-dir>`.
|
|
19
|
+
- `start-slice` valida que `slice-00` este completado antes de iniciar slices posteriores.
|
|
20
|
+
- `feature` y `bugfix` aceptan `main` o `develop` como base branch.
|
|
21
|
+
|
|
22
|
+
## Pendientes
|
|
23
|
+
|
|
24
|
+
Sin pendientes criticos para esta slice.
|
|
25
|
+
|
|
26
|
+
## Riesgos remanentes
|
|
27
|
+
|
|
28
|
+
La limpieza post-merge del worktree no esta incluida en esta slice; queda para `slice-09`.
|
|
29
|
+
|
|
30
|
+
## Recomendaciones futuras
|
|
31
|
+
|
|
32
|
+
Mantener `spec close` separado de `spec start/status` para no mezclar creacion segura con limpieza destructiva.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-05: Spec worktree lifecycle
|
|
2
|
+
|
|
3
|
+
**Spec:** quiver-v22-guided-ai-workflow
|
|
4
|
+
**Slice:** slice-05-spec-worktree-lifecycle
|
|
5
|
+
**Tipo:** feature
|
|
6
|
+
|
|
7
|
+
## Contexto
|
|
8
|
+
|
|
9
|
+
El flujo deseado usa un worktree por SPEC, no una mezcla manual de ramas y worktrees por cada tarea.
|
|
10
|
+
|
|
11
|
+
## Objetivo
|
|
12
|
+
|
|
13
|
+
Agregar ciclo de vida de worktree a nivel spec y bloquear ejecucion hasta que `slice-00` este completada.
|
|
14
|
+
|
|
15
|
+
## Alcance
|
|
16
|
+
|
|
17
|
+
- Comandos de spec start/status.
|
|
18
|
+
- Seleccion segura de base branch.
|
|
19
|
+
- Reuso seguro de worktree existente.
|
|
20
|
+
- Estado de slices dentro del spec.
|
|
21
|
+
|
|
22
|
+
## Criterios de aceptacion
|
|
23
|
+
|
|
24
|
+
- Un spec tiene un worktree dedicado.
|
|
25
|
+
- `slice-00` es obligatoria primero.
|
|
26
|
+
- El estado muestra rama, path y pendientes.
|
|
27
|
+
- No se borra ni pisa trabajo local.
|
|
28
|
+
|
|
29
|
+
## Plan tecnico resumido
|
|
30
|
+
|
|
31
|
+
Extraer o extender helpers de lifecycle para soportar spec-level worktrees, manteniendo compatibilidad con start-slice existente.
|
|
32
|
+
|
|
33
|
+
## Pasos sugeridos de ejecucion
|
|
34
|
+
|
|
35
|
+
1. Revisar `lifecycle.js`, `slice.js` y `git.js`.
|
|
36
|
+
2. Definir metadata de spec worktree.
|
|
37
|
+
3. Agregar comando start/status.
|
|
38
|
+
4. Cubrir main/develop y paths con espacios.
|
|
39
|
+
5. Agregar tests.
|
|
40
|
+
|
|
41
|
+
## Restricciones
|
|
42
|
+
|
|
43
|
+
- No cerrar worktrees en esta slice.
|
|
44
|
+
- No crear PR en esta slice.
|
|
45
|
+
|
|
46
|
+
## Riesgos
|
|
47
|
+
|
|
48
|
+
- Romper `start-slice` existente.
|
|
49
|
+
- Mantener supuestos viejos de `develop` cuando el repo usa `main`.
|
|
50
|
+
|
|
51
|
+
## Checklist de finalizacion
|
|
52
|
+
|
|
53
|
+
- [ ] Spec worktree start/status listo.
|
|
54
|
+
- [ ] Base branch segura.
|
|
55
|
+
- [ ] Bloqueo de slice-00 cubierto.
|
|
56
|
+
- [ ] Tests pasan.
|
package/specs/quiver-v22-guided-ai-workflow/slices/slice-05-spec-worktree-lifecycle/slice.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-05-spec-worktree-lifecycle",
|
|
3
|
+
"ticket": "QUIVER-22-05",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Spec worktree lifecycle",
|
|
6
|
+
"objective": "Formalize one dedicated worktree per spec and make slice-00 the first executable step.",
|
|
7
|
+
"description": "Add commands and guardrails for starting, inspecting, and managing a spec-level worktree before slice execution.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "spec-worktree-lifecycle",
|
|
12
|
+
"branch_name": "feature/QUIVER-22-05-spec-worktree-lifecycle"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/index.js",
|
|
16
|
+
"src/create-quiver/lib/lifecycle.js",
|
|
17
|
+
"src/create-quiver/lib/slice.js",
|
|
18
|
+
"src/create-quiver/lib/git.js",
|
|
19
|
+
"src/create-quiver/lib/spec-worktrees.js",
|
|
20
|
+
"tests/lib/lifecycle.test.js",
|
|
21
|
+
"tests/commands/spec-worktree.test.js"
|
|
22
|
+
],
|
|
23
|
+
"depends_on": [
|
|
24
|
+
"slice-04-planner-approval-state"
|
|
25
|
+
],
|
|
26
|
+
"parallel_safe": "no",
|
|
27
|
+
"parallel_safe_reason": "Spec worktree behavior is required before execution and PR automation.",
|
|
28
|
+
"must": [
|
|
29
|
+
"Represent one spec as one worktree and one PR branch.",
|
|
30
|
+
"Start the spec worktree from the correct base branch.",
|
|
31
|
+
"Require slice-00 to be first.",
|
|
32
|
+
"Show spec status, worktree path, branch, and pending slices.",
|
|
33
|
+
"Avoid deleting or overwriting active worktrees."
|
|
34
|
+
],
|
|
35
|
+
"not_included": [
|
|
36
|
+
"Post-merge cleanup.",
|
|
37
|
+
"PR creation.",
|
|
38
|
+
"Parallel slice execution."
|
|
39
|
+
],
|
|
40
|
+
"acceptance": [
|
|
41
|
+
"Spec start creates or reuses one dedicated worktree for the spec.",
|
|
42
|
+
"Spec status shows branch, path, slice-00 status, and pending slices.",
|
|
43
|
+
"Commands refuse to start later slices before slice-00 is complete.",
|
|
44
|
+
"Base branch selection supports main or develop without hardcoding the wrong target.",
|
|
45
|
+
"Existing dirty worktrees are not overwritten."
|
|
46
|
+
],
|
|
47
|
+
"tests": [
|
|
48
|
+
"node --test tests/lib/lifecycle.test.js tests/commands/spec-worktree.test.js",
|
|
49
|
+
"git diff --check"
|
|
50
|
+
],
|
|
51
|
+
"estimated_hours": 8,
|
|
52
|
+
"status": "completed",
|
|
53
|
+
"blocked_reason": null
|
|
54
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-06: Executor commit and recovery
|
|
2
|
+
|
|
3
|
+
## Resumen de lo realizado
|
|
4
|
+
|
|
5
|
+
Se extendio `ai execute-slice` para ejecutar validaciones declaradas, bloquear commits ante fallos y crear un unico commit del slice cuando el usuario habilita `--commit`.
|
|
6
|
+
|
|
7
|
+
## Validacion contra criterios de aceptacion
|
|
8
|
+
|
|
9
|
+
- [x] Commit unico post-validacion.
|
|
10
|
+
- [x] Fallos bloquean commit.
|
|
11
|
+
- [x] Recovery visible.
|
|
12
|
+
- [x] Tests ejecutados.
|
|
13
|
+
|
|
14
|
+
## Cambios relevantes
|
|
15
|
+
|
|
16
|
+
- Nuevo flag `--commit` para commit opt-in despues de provider, scope y validaciones.
|
|
17
|
+
- Nuevo flag `--allow-dirty` para permitir dirty worktree preexistente de forma explicita.
|
|
18
|
+
- Validaciones declaradas en `slice.json.tests` se ejecutan antes del commit.
|
|
19
|
+
- Fallos de provider, scope, validacion o commit agregan guia de retry/abort.
|
|
20
|
+
- Tests cubren provider failure, scope violation, validation failure, dirty worktree, commit exitoso y dry-run CLI.
|
|
21
|
+
|
|
22
|
+
## Pendientes
|
|
23
|
+
|
|
24
|
+
Sin pendientes criticos para esta slice.
|
|
25
|
+
|
|
26
|
+
## Riesgos remanentes
|
|
27
|
+
|
|
28
|
+
Los comandos de validacion se ejecutan como comandos del proyecto; deben venir de `slice.json.tests` revisado por el equipo.
|
|
29
|
+
|
|
30
|
+
## Recomendaciones futuras
|
|
31
|
+
|
|
32
|
+
Las waves de `slice-07` deben reutilizar este ejecutor en vez de duplicar logica de validacion o commit.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-06: Executor commit and recovery
|
|
2
|
+
|
|
3
|
+
**Spec:** quiver-v22-guided-ai-workflow
|
|
4
|
+
**Slice:** slice-06-executor-commit-recovery
|
|
5
|
+
**Tipo:** feature
|
|
6
|
+
|
|
7
|
+
## Contexto
|
|
8
|
+
|
|
9
|
+
El executor debe poder modificar codigo dentro del slice, pero el flujo necesita validacion, reporte y un commit por slice.
|
|
10
|
+
|
|
11
|
+
## Objetivo
|
|
12
|
+
|
|
13
|
+
Agregar commit opcional post-validacion y recuperacion clara ante fallos.
|
|
14
|
+
|
|
15
|
+
## Alcance
|
|
16
|
+
|
|
17
|
+
- Ejecutar slice con contexto acotado.
|
|
18
|
+
- Validar scope.
|
|
19
|
+
- Ejecutar validaciones declaradas.
|
|
20
|
+
- Crear commit unico si corresponde.
|
|
21
|
+
- Reportar retry/abort cuando algo falla.
|
|
22
|
+
|
|
23
|
+
## Criterios de aceptacion
|
|
24
|
+
|
|
25
|
+
- No hay commit si falla provider, scope o validaciones.
|
|
26
|
+
- Si todo pasa y commit esta habilitado, se crea un commit.
|
|
27
|
+
- El usuario ve que hacer ante fallos.
|
|
28
|
+
- El worktree sucio se bloquea por default.
|
|
29
|
+
|
|
30
|
+
## Plan tecnico resumido
|
|
31
|
+
|
|
32
|
+
Extender `ai execute-slice` y helpers del executor con una etapa posterior a validacion. Mantener commit automation explicita y testeada.
|
|
33
|
+
|
|
34
|
+
## Pasos sugeridos de ejecucion
|
|
35
|
+
|
|
36
|
+
1. Revisar `executor.js` y tests actuales.
|
|
37
|
+
2. Agregar opcion de commit.
|
|
38
|
+
3. Implementar commit message por slice.
|
|
39
|
+
4. Agregar reporte de fallo recuperable.
|
|
40
|
+
5. Cubrir casos happy/error.
|
|
41
|
+
|
|
42
|
+
## Restricciones
|
|
43
|
+
|
|
44
|
+
- No ejecutar multiples slices.
|
|
45
|
+
- No abrir PR.
|
|
46
|
+
- No hacer rollback destructivo automatico.
|
|
47
|
+
|
|
48
|
+
## Riesgos
|
|
49
|
+
|
|
50
|
+
- Commit accidental con cambios fuera de scope.
|
|
51
|
+
- Mensajes de error poco accionables.
|
|
52
|
+
|
|
53
|
+
## Checklist de finalizacion
|
|
54
|
+
|
|
55
|
+
- [ ] Commit opt-in listo.
|
|
56
|
+
- [ ] Scope bloquea commit.
|
|
57
|
+
- [ ] Fallos reportan recovery.
|
|
58
|
+
- [ ] Tests pasan.
|
package/specs/quiver-v22-guided-ai-workflow/slices/slice-06-executor-commit-recovery/slice.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-06-executor-commit-recovery",
|
|
3
|
+
"ticket": "QUIVER-22-06",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Executor validation, recovery, and commit per slice",
|
|
6
|
+
"objective": "Let executor agents modify approved slice scope and create one commit after validation passes.",
|
|
7
|
+
"description": "Extend slice execution with recoverable failure reporting, retry/abort guidance, optional commit automation, and strict one-slice-one-commit behavior.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "executor-commit-recovery",
|
|
12
|
+
"branch_name": "feature/QUIVER-22-06-executor-commit-recovery"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/commands/ai.js",
|
|
16
|
+
"src/create-quiver/lib/ai/executor.js",
|
|
17
|
+
"src/create-quiver/lib/scope.js",
|
|
18
|
+
"src/create-quiver/lib/git.js",
|
|
19
|
+
"src/create-quiver/lib/slice-runner.js",
|
|
20
|
+
"tests/commands/ai-execute-slice.test.js",
|
|
21
|
+
"tests/lib/ai-executor.test.js",
|
|
22
|
+
"tests/lib/scope.test.js"
|
|
23
|
+
],
|
|
24
|
+
"depends_on": [
|
|
25
|
+
"slice-05-spec-worktree-lifecycle"
|
|
26
|
+
],
|
|
27
|
+
"parallel_safe": "after_dependencies",
|
|
28
|
+
"parallel_safe_reason": "Can run in parallel with PR creation only if file scopes remain separate.",
|
|
29
|
+
"must": [
|
|
30
|
+
"Keep executor context limited to approved slice data.",
|
|
31
|
+
"Require a clean worktree before execution unless explicitly overridden by existing safe options.",
|
|
32
|
+
"Validate changed files against slice scope after execution.",
|
|
33
|
+
"Run declared validation commands or report why they were skipped.",
|
|
34
|
+
"Create exactly one commit when validation passes and commit automation is enabled.",
|
|
35
|
+
"Write or print a recovery report when execution fails."
|
|
36
|
+
],
|
|
37
|
+
"not_included": [
|
|
38
|
+
"Parallel execution waves.",
|
|
39
|
+
"PR creation.",
|
|
40
|
+
"Post-merge cleanup."
|
|
41
|
+
],
|
|
42
|
+
"acceptance": [
|
|
43
|
+
"Executor refuses to run with dirty worktree by default.",
|
|
44
|
+
"Executor reports provider failure without hiding local changes.",
|
|
45
|
+
"Scope violations block commit automation.",
|
|
46
|
+
"Validation failures block commit automation.",
|
|
47
|
+
"Successful execution with commit enabled creates one slice commit.",
|
|
48
|
+
"Retry and abort guidance is shown after failures."
|
|
49
|
+
],
|
|
50
|
+
"tests": [
|
|
51
|
+
"node --test tests/commands/ai-execute-slice.test.js tests/lib/ai-executor.test.js tests/lib/scope.test.js",
|
|
52
|
+
"git diff --check"
|
|
53
|
+
],
|
|
54
|
+
"estimated_hours": 8,
|
|
55
|
+
"status": "completed",
|
|
56
|
+
"blocked_reason": null
|
|
57
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# CLOSURE BRIEF - slice-07: Execution waves and safe delegation
|
|
2
|
+
|
|
3
|
+
## Resumen de lo realizado
|
|
4
|
+
|
|
5
|
+
Se agrego `ai execute-plan` para imprimir o ejecutar olas de slices. El plan detecta conflictos por archivos, scope desconocido y fuerza fallback secuencial cuando no es seguro paralelizar.
|
|
6
|
+
|
|
7
|
+
## Validacion contra criterios de aceptacion
|
|
8
|
+
|
|
9
|
+
- [x] Olas respetan dependencias.
|
|
10
|
+
- [x] Paralelo bloqueado ante conflictos.
|
|
11
|
+
- [x] Dry-run no ejecuta providers.
|
|
12
|
+
- [x] Tests ejecutados.
|
|
13
|
+
|
|
14
|
+
## Cambios relevantes
|
|
15
|
+
|
|
16
|
+
- `execution-plan` ahora incluye `execution_groups`, `fallback_reason` y `unknown_scope_slices`.
|
|
17
|
+
- `parallel_ready` solo queda activo si hay mas de un slice, todos declaran files y no hay overlap.
|
|
18
|
+
- `ai execute-plan --dry-run --commit` imprime comandos de executor por slice.
|
|
19
|
+
- `ai execute-plan --execute --commit` ejecuta slices usando el executor validado y corta ante el primer fallo.
|
|
20
|
+
- La ejecucion real exige `--commit` para preservar un commit por slice.
|
|
21
|
+
|
|
22
|
+
## Pendientes
|
|
23
|
+
|
|
24
|
+
Sin pendientes criticos para esta slice.
|
|
25
|
+
|
|
26
|
+
## Riesgos remanentes
|
|
27
|
+
|
|
28
|
+
La ejecucion paralela real queda representada como grupos `parallel-ready`; la ejecucion local integrada corre de forma controlada para no mezclar agentes en el mismo worktree.
|
|
29
|
+
|
|
30
|
+
## Recomendaciones futuras
|
|
31
|
+
|
|
32
|
+
Si se agrega paralelismo real automatico, debe crear worktrees separados por slice antes de llamar providers en paralelo.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# EXECUTION BRIEF - slice-07: Execution waves and safe delegation
|
|
2
|
+
|
|
3
|
+
**Spec:** quiver-v22-guided-ai-workflow
|
|
4
|
+
**Slice:** slice-07-execution-waves-delegation
|
|
5
|
+
**Tipo:** feature
|
|
6
|
+
|
|
7
|
+
## Contexto
|
|
8
|
+
|
|
9
|
+
El usuario quiere que Quiver indique que slices van secuenciales y cuales pueden ir en paralelo con agentes ejecutores baratos.
|
|
10
|
+
|
|
11
|
+
## Objetivo
|
|
12
|
+
|
|
13
|
+
Agregar ejecucion por olas con fallback seguro a secuencial.
|
|
14
|
+
|
|
15
|
+
## Alcance
|
|
16
|
+
|
|
17
|
+
- Planificar olas desde dependencias.
|
|
18
|
+
- Validar conflictos por archivos.
|
|
19
|
+
- Imprimir comandos en dry-run.
|
|
20
|
+
- Ejecutar olas cuando este habilitado.
|
|
21
|
+
- Respetar un commit por slice.
|
|
22
|
+
|
|
23
|
+
## Criterios de aceptacion
|
|
24
|
+
|
|
25
|
+
- `slice-00` siempre va primero.
|
|
26
|
+
- Paralelo solo se permite sin conflictos.
|
|
27
|
+
- Scope desconocido cae a secuencial.
|
|
28
|
+
- Una falla corta la ola requerida.
|
|
29
|
+
- Dry-run no llama providers.
|
|
30
|
+
|
|
31
|
+
## Plan tecnico resumido
|
|
32
|
+
|
|
33
|
+
Extender `execution-plan` y agregar un comando de execute-plan que use el executor ya validado. Mantener primero modo print-only/dry-run.
|
|
34
|
+
|
|
35
|
+
## Pasos sugeridos de ejecucion
|
|
36
|
+
|
|
37
|
+
1. Revisar `execution-plan.js` y `slice-graph.js`.
|
|
38
|
+
2. Agregar deteccion de conflicto por files.
|
|
39
|
+
3. Agregar comando dry-run.
|
|
40
|
+
4. Integrar ejecucion real con flags explicitos.
|
|
41
|
+
5. Agregar tests de waves y conflictos.
|
|
42
|
+
|
|
43
|
+
## Restricciones
|
|
44
|
+
|
|
45
|
+
- No asumir que paralelo es seguro sin files declarados.
|
|
46
|
+
- No abrir PR.
|
|
47
|
+
|
|
48
|
+
## Riesgos
|
|
49
|
+
|
|
50
|
+
- Ejecutar dos agentes que toquen la misma zona.
|
|
51
|
+
- Dejar un wave a medio completar sin reporte claro.
|
|
52
|
+
|
|
53
|
+
## Checklist de finalizacion
|
|
54
|
+
|
|
55
|
+
- [ ] Olas generadas.
|
|
56
|
+
- [ ] Conflictos detectados.
|
|
57
|
+
- [ ] Dry-run print-only listo.
|
|
58
|
+
- [ ] Tests pasan.
|
package/specs/quiver-v22-guided-ai-workflow/slices/slice-07-execution-waves-delegation/slice.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slice_id": "slice-07-execution-waves-delegation",
|
|
3
|
+
"ticket": "QUIVER-22-07",
|
|
4
|
+
"type": "feature",
|
|
5
|
+
"title": "Execution waves and safe delegation",
|
|
6
|
+
"objective": "Execute or print execution waves that respect dependencies, slice-00, and file-scope conflicts.",
|
|
7
|
+
"description": "Turn the existing execution plan into a guided flow that can run sequential waves and safely identify parallel-ready slices for cheaper executor agents.",
|
|
8
|
+
"git": {
|
|
9
|
+
"branch_type": "feature",
|
|
10
|
+
"base_branch": "main",
|
|
11
|
+
"branch_slug": "execution-waves-delegation",
|
|
12
|
+
"branch_name": "feature/QUIVER-22-07-execution-waves-delegation"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"src/create-quiver/commands/ai.js",
|
|
16
|
+
"src/create-quiver/lib/ai/execution-plan.js",
|
|
17
|
+
"src/create-quiver/lib/ai/executor.js",
|
|
18
|
+
"src/create-quiver/lib/slice-graph.js",
|
|
19
|
+
"src/create-quiver/lib/slice-runner.js",
|
|
20
|
+
"tests/lib/ai-execution-plan.test.js",
|
|
21
|
+
"tests/commands/ai-execute-plan.test.js"
|
|
22
|
+
],
|
|
23
|
+
"depends_on": [
|
|
24
|
+
"slice-06-executor-commit-recovery"
|
|
25
|
+
],
|
|
26
|
+
"parallel_safe": "no",
|
|
27
|
+
"parallel_safe_reason": "This slice coordinates multi-slice execution and should not be developed alongside executor changes.",
|
|
28
|
+
"must": [
|
|
29
|
+
"Always put slice-00 before all implementation slices.",
|
|
30
|
+
"Group ready slices into waves.",
|
|
31
|
+
"Detect file-scope conflicts before suggesting parallel execution.",
|
|
32
|
+
"Fall back to sequential execution when scope is unknown or conflicting.",
|
|
33
|
+
"Support a dry-run or print-only mode before real execution.",
|
|
34
|
+
"Keep one commit per slice when execution is enabled."
|
|
35
|
+
],
|
|
36
|
+
"not_included": [
|
|
37
|
+
"Provider account billing controls.",
|
|
38
|
+
"Fully autonomous merge.",
|
|
39
|
+
"PR creation."
|
|
40
|
+
],
|
|
41
|
+
"acceptance": [
|
|
42
|
+
"Execution plan shows waves with sequential and parallel groups.",
|
|
43
|
+
"Unknown or overlapping file scopes force sequential mode.",
|
|
44
|
+
"Dry-run prints commands and does not call providers.",
|
|
45
|
+
"Real execution stops the wave on failed required slice.",
|
|
46
|
+
"Successful slices keep one commit per slice."
|
|
47
|
+
],
|
|
48
|
+
"tests": [
|
|
49
|
+
"node --test tests/lib/ai-execution-plan.test.js tests/commands/ai-execute-plan.test.js",
|
|
50
|
+
"git diff --check"
|
|
51
|
+
],
|
|
52
|
+
"estimated_hours": 9,
|
|
53
|
+
"status": "completed",
|
|
54
|
+
"blocked_reason": null
|
|
55
|
+
}
|